簡體   English   中英

意外的令牌“(”-Java — SQL Server

[英]Unexpected token “(” - Java — SQL Server

我使用的是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.

知道為什么我會得到這個嗎?

TIMESTAMPCURRENT_TIMESTAMP都是SQL Server中的保留字。

嘗試將TIMSTAMP更改為MY_TIMESTAMP

另外,與名稱所暗示的相反, TIMESTAMP實際上不是時間,但是CURRENT_TIMESTAMP是...

TIMESTAMP數據類型只是一個遞增數字,並不保留日期或時間。

CURRENT_TIMESTAMP以日期時間值返回當前數據庫系統時間戳,而沒有數據庫時區偏移。

因此,將TIMESTAMP (不是時間)與CURRENT_TIMESTAMP (是時間)進行比較可能會引起問題。

您具有表名和字段名的代碼切換到我執行的表,SSMS中沒有錯誤,

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

那就是說你的第一部分

WHERE TIMESTAMP > CURRENT_TIMESTAMP

除非TIMESTAMP是未來,否則它將永遠不會發生,但這可能就是您正在尋找的東西

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM