【发布时间】:2012-12-24 09:21:17
【问题描述】:
我正在尝试使用以下语句创建 JDBC 查询
String query = "SELECT COLUMN1,DATECOLUMN2 FROM tableName +
"where datediff(d,DATECOLUMN2,getdate()) <= 1";
st = conn1.createStatement();
rs = st.executeQuery(query); //receiving error here
我收到以下错误消息
java.sql.SQLException: "d" is not a recognized table hints option. If it is intended as a parameter to a table-valued function or to the CHANGETABLE function, ensure that your database compatibility mode is set to 90.
我确定查询由于某种原因无法识别 datediff 函数我不知道为什么,因为我之前在同一个应用程序中使用 HQL 并检索值。
为了尝试使用我使用的替代功能
{fn TIMESTAMPADD( SQL_TSI_DAY, 1, CURRENT_TIMESTAMP)}
但它也失败了我后来发现这只是用于德比数据库的
有人可以帮助我使用正确的 sql 函数来使用 JDBC 将日期与当前日期进行比较
【问题讨论】:
-
了解您的数据库类型和版本会有所帮助:)
-
FWIW,您发布的查询在 sql server 中运行良好(正确关闭引号后)。这表明问题出在我们看不到的查询的其他部分。或者您使用的是不同的数据库类型;-)