如何在MSSQL中获得CURRENT_DATE?
问题描述:
我在Hibernate中使用jpa 3.o。我有一个命名查询:如何在MSSQL中获得CURRENT_DATE?
SELECT COUNT(wt.id) FROM WPSTransaction wt WHERE wt.createdDate>= CURRENT_DATE
WPSTransaction是我的实体类,createdDate是我的类中的一个列。
它在Mysql数据库中工作正常。但是,我正在转向SQL Server 2012,SQL Server似乎没有编译CURRENT_DATE
值。我试过GETNOW()
和NOW()
方法以及current_date()
方法和CURRENT_TIMESTAMP
没有任何运气。
答
如何:
Query q = entityManager.createQuery("SELECT COUNT(wt.id) FROM WPSTransaction wt WHERE wt.createdDate>= :d");
q.setParam("d", new Date());
没有数据库特定的代码需要。
答
MS SQL Server fails to conform to the standard这里 - 它不提供current_date
关键字。
您必须改为使用特定于SQL Server的GETDATE()
函数作为文档链接显示。
因为current_date
是规范中的关键字,所以不能在MS SQL中创建用户定义的current_date()
函数,并期望它的工作原理相同。所以不幸的是你在这里遇到了特定于数据库的代码。
你能澄清一下“没有任何运气的意思”吗? – ireddick