在java中使用sql DATEADD函数

Onc*_*nca 4 sql derby dateadd date-arithmetic

当我使用DATEADD运行查询时,似乎数据库无法识别此功能.当我刚跑的时候我也会select DATEADD(Month, -3, GETDATE()):

Error code -1, SQL state 42X01: Syntax error: Encountered "<EOF>" at line 1, column 36.
Run Code Online (Sandbox Code Playgroud)

你可以看到我从hsqldb-2.2.9添加了JAR文件

在此输入图像描述

我在这里错过了什么?

a_h*_*ame 8

Derby没有DATEADD功能.您需要使用JDBC函数 timestampadd来实现此目的:

select {fn TIMESTAMPADD(SQL_TSI_MONTH, -3, CURRENT_TIMESTAMP)}
from sysibm.sysdummy1
Run Code Online (Sandbox Code Playgroud)

使用sysdummy1的另一种方法是ANSI标准values子句,它在Derby和HSQLDB中都有效:

values ({fn TIMESTAMPADD(SQL_TSI_MONTH, -3, CURRENT_TIMESTAMP)})
Run Code Online (Sandbox Code Playgroud)