Sql JDBC模板中的DATEADD

Sql JDBC模板中的DATEADD,sql,oracle,spring-boot,jdbc,Sql,Oracle,Spring Boot,Jdbc,我正在尝试使用jdbc和spring boot进行查询选择 我想要选择我的创建日期值小于现在负30的信息 我试着这样做: SELECT * FROM informations WHERE lastTreatment < DATEADD(MINUTE, -30, GETDATE()) 选择* 来自信息 其中lastTreatment

我正在尝试使用jdbcspring boot进行查询选择

我想要选择我的创建日期值小于现在负30的信息

我试着这样做:

SELECT *  
FROM informations 
WHERE lastTreatment < DATEADD(MINUTE, -30, GETDATE())
选择*
来自信息
其中lastTreatment
我有这样一个错误:

SELECT *  
FROM informations 
WHERE lastTreatment < DATEADD(MINUTE, -30, GETDATE())
原因:org.springframework.jdbc.badsqlgramarexception:StatementCallback;糟糕的SQL语法


有人知道吗?谢谢

可能不见了;最后呢

SELECT *  
FROM informations 
WHERE lastTreatment < DATEADD(MINUTE, -30, GETDATE());
选择*
来自信息
其中lastTreatment
您声称使用Oracle,但看起来您编写的是MS SQL Server或MySQL。Oracle中没有这样的函数DATEADD,也没有GETDATE函数。要在“只需执行日期+x”中的日期中添加x天。在这种情况下,你只需要一天的一小部分,所以只需加上一个x,它就可以得到所需的部分。对于30分钟,即30/(60*24)或(30分钟/(60分钟/小时*24小时/天)。对于GETDATE,只需使用SYSDATE。 因此,您的查询变成:

SELECT *  
FROM informations 
WHERE lastTreatment < sysdate-(30/(60*24));
选择*
来自信息
其中lastTreatment
标记您的dbms,您的查询看起来正常,oracle JDBC一开始就无效。请尝试
lasttreatment
不使用Java,我们不放这个“,它是JDBC模板,问题是日期,但我不知道确切的是什么,它不是java语法,它的sql语法,它应该是查询字符串的一部分。是的,我知道它是sql语法如果它是Oracle sql标记的,它没有任何
字符。
dateadd
的东西让我怀疑它是否是其他的东西。我已经试过了sysdate,但它是一样的,它似乎不被JDC查询和spring引导识别。问题在于JDBC和/或spring引导。sysdate在Oracle中是基本的,因为1997年6月发布的版本8(我怀疑旧得多,但快速的internet搜索无法找到早期的参考。)