JPQL SQL Server CURRENT_DATE语法不正确

时间:2017-11-29 12:31:34

标签: sql-server hibernate date jpql

使用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(),没有错误,但没有选择任何消息。
  • :todaytoday传递参数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(),没有错误,但没有选择任何消息。

1 个答案:

答案 0 :(得分:0)

convert(date, getdate())正如通常在有条不紊地详述SO问题时所发现的那样。