意外的令牌"(" - Java - SQL Server

时间:2018-02-14 18:18:25

标签: java sql-server-2008 niagara-ax

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

这是我的查询:(它在SQL Server中有效)

Url of the images on that webpage

我收到以下错误:

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

我知道为什么会这样做?

2 个答案:

答案 0 :(得分:0)

TIMESTAMPCURRENT_TIMESTAMP都是SQL Server中的保留字。

尝试将TIMSTAMP更改为MY_TIMESTAMP

另外,与名称相反,TIMESTAMP实际上不是时间,但CURRENT_TIMESTAMP是......

  

The TIMESTAMP data type is just an incrementing number and does not preserve a date or a time.

  

CURRENT_TIMESTAMP returns the current database system timestamp as a datetime value without the database time zone offset.

因此,将TIMESTAMP(非时间)与CURRENT_TIMESTAMP(是时间)进行比较可能会导致问题。

答案 1 :(得分:0)

使用表名和字段名称的代码切换到我在SSMS中执行时出错的表,

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

说到你的第一部分

WHERE TIMESTAMP > CURRENT_TIMESTAMP

除非TIMESTAMP是未来,否则它永远不会发生,但这可能就是你要找的东西