java - 在sql jdbc查询中使用datediff

标签 java sql jdbc datediff

我正在尝试使用以下语句创建 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)}

但它也失败了,我后来发现这仅用于 Derby 数据库

有人可以帮助我使用正确的 sql 函数通过 JDBC 将日期与当前日期进行比较

最佳答案

String query = "SELECT COLUMN1,DATECOLUMN2 FROM tableName "+
               "where datediff(day,DATECOLUMN2,getdate()) <= 1";

关于java - 在sql jdbc查询中使用datediff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14250288/

相关文章:

java - 如何在 Java 中以更好的方式编写这些循环?

sql - 匹配值,但 SQL Server 中的新值出错

java - 错误 java.lang.ClassNotFoundException : com. mysql.jdbc.Driver 即使我已经安装了 mysql 连接器

java - sendRedirect() 未按预期工作

java - Gradle:创建一个没有类,只有资源的 jar

java - 限制菜单中可见行数: JavaFX

sql - T-SQL语法: is "LIKE ' %'" legitimate?

mysql - SQL 选择表中所有具有与 '..' 相同 ID 的表

java - H2 内存 DB : Set Timezone with JDBC? Java 单元测试

mysql - 尝试将 Jira(docker)连接到 Mysql(非 docker)5.6.44 但连接被拒绝