0

我正在使用 Niagara 4 Framework (Java),我想将查询发送到我的 SQL Server 数据库。

这是我的查询:(它在 SQL Server 中工作)

SELECT * FROM [RESTART] 
WHERE TIMESTAMP > CURRENT_TIMESTAMP and TIMESTAMP <DATEADD(minute, 10, 
CURRENT_TIMESTAMP )

我收到以下错误:

 Syntax error near:"DATEADD(" Unexpected token "(" at line 0, column 11.

知道为什么我会得到这个吗?

4

2 回答 2

0

TIMESTAMP并且CURRENT_TIMESTAMP都是 SQL Server 中的保留字。

尝试更改TIMSTAMPMY_TIMESTAMP

此外,与名称所暗示的相反,TIMESTAMP实际上不是时间,而是CURRENT_TIMESTAMP...

数据类型只是一个递增的TIMESTAMP数字,不保留日期或时间。

CURRENT_TIMESTAMP返回当前数据库系统时间戳作为不带数据库时区偏移的日期时间值。

因此,将 a TIMESTAMP(not a time) 与CURRENT_TIMESTAMP(yes a time) 进行比较可能会导致问题。

于 2018-02-14T18:32:37.443 回答
0

您的带有表名和字段名的代码切换到我在 SSMS 中执行且没有错误的表,

SELECT * FROM [OutgoingAudit] 
WHERE CreateTS > CURRENT_TIMESTAMP and CreateTS < DATEADD(minute, 20, CURRENT_TIMESTAMP )

据说你在哪里的第一部分

WHERE TIMESTAMP > CURRENT_TIMESTAMP

除非 TIMESTAMP 是未来,否则它永远不会发生,但这可能是您正在寻找的

于 2018-02-14T18:32:50.983 回答