使用Spring 4.3.0和com.microsoft.sqlserver:mssql-jdbc:6.2.1.jre8,我试图执行此SQL Server查询
SELECT * FROM Message m WHERE m.time >= '2017-11-29' AND m.user_id = 2 ORDER BY m.time DESC
我使用JPQL表达式使用格式为2017-11-29 03:56:34.375
的日期时间列从SQL Server Express表中进行选择
SELECT m FROM Message m WHERE m.time >=
dateexpression AND m.user.id = :userId ORDER BY m.time DESC
。
消息对象使用列类型java.util.Date
,并在表格中插入正确。
我找到了很多关于这个主题的指南/ SO问题,似乎没有一个对我有用。在 dateexpression 中,我尝试过:
CURRENT_DATE
,关键字'附近的语法不正确CURRENT_DATE'。CURRENT_DATE()
,没有错误,但没有选择任何消息。:today
,today
传递参数java.sql.Date today = new java.sql.Date(new java.util.Date().getTime());
(=> 2017-11-29
)没有错误,但没有选择任何消息。':today'
,提供unknown parameter name : today
{d ':today'}
,在{
上发出语法错误。{d :today}
,在{
上发出语法错误。GETDATE()
,没有错误,但没有选择任何消息。答案 0 :(得分:0)
convert(date, getdate())
正如通常在有条不紊地详述SO问题时所发现的那样。