sql - JDBC 模板中的 DATEADD
问题描述
我正在尝试使用jdbc和spring boot进行查询选择,
我想要选择我的创建日期值小于现在负 30 的信息。
我试过这样:
SELECT *
FROM informations
WHERE lastTreatment < DATEADD(MINUTE, -30, GETDATE())
我有这样的错误:
引起:org.springframework.jdbc.BadSqlGrammarException: StatementCallback; 糟糕的 SQL 语法
有人有想法吗?谢谢
解决方案
您声称是 Oracle,但看起来您编写的是 MS SQL Server 或 MySQL。Oracle 中没有 DATEADD 这样的函数,也没有 GETDATE 函数。要在日期中添加 x 天,只需执行date+x即可。在这种情况下,您只需要一天的一小部分,因此只需添加一个 x 即可产生需要的部分。对于 30 分钟,即30/(60*24)或(30 分钟/(每小时 60 分钟 * 每天 24 小时)。至于 GETDATE 只需使用 SYSDATE。所以您的查询变为:
SELECT *
FROM informations
WHERE lastTreatment < sysdate-(30/(60*24));
推荐阅读
- excel - 如何访问非活动工作表中的活动单元格?
- laravel-routing - 未定义变量:posts(查看:C:\xampp\htdocs\fpog\resources\views\pages\index.blade.php)
- ios - 将 iOS SwiftUI TextField 的键盘保持在屏幕上,直到用户输入正确的输入
- c++ - 使用模板在 C++ 中生成随机数的高斯分布
- html - 输入字段没有响应显示 flex
- java - 使用没有 Spring/CDI 的普通 Java Servlet 创建一个新的 Vaadin Flow 16/17 项目
- python-3.x - Python为每个新请求运行新任务或循环
- python-3.x - Python套接字未连接
- json - 如何在记事本++中用数字范围替换多行
- notepad++ - Notepad ++如何在行包含时替换结尾