当我使用DATEADD运行查询时,似乎数据库无法识别此功能。
当我刚刚运行select DATEADD(Month, -3, GETDATE())
时,我也会:
Error code -1, SQL state 42X01: Syntax error: Encountered "<EOF>" at line 1, column 36.
我在hsqldb-2.2.9中添加了JAR文件,如您所见
我在这里缺少什么?
答案 0 :(得分:8)
Derby没有DATEADD功能。您需要使用JDBC function timestampadd
来实现此目的:
select {fn TIMESTAMPADD(SQL_TSI_MONTH, -3, CURRENT_TIMESTAMP)}
from sysibm.sysdummy1
使用sysdummy1的另一种方法是ANSI标准values
子句,它在Derby和HSQLDB中都有效:
values ({fn TIMESTAMPADD(SQL_TSI_MONTH, -3, CURRENT_TIMESTAMP)})
答案 1 :(得分:1)
在德比中添加或减少一天 从tst.YOUTH中选择rundate,{fn TIMESTAMPADD(SQL_TSI_DAY,-1,RUNDATE)}
答案 2 :(得分:0)
对于hsqldb:
DATEADD(,,) DATEADD('月',3,日期'2008-11-22')
试试吧
选择DATEADD(月,-3,'2008-11-22')
对于德比:
Derby支持JDBC转义函数TIMESTAMPADD
TIMESTAMPDIFF(interval,timestampExpression1,timestampExpression2)
值{fn timestampadd(SQL_TSI_DAY,1,timestamp('2010-12-31 23:59:59'))};