2013-10-20 35 views
0

我使用以下WHERE子句在我的SELECT語句時區調整

WHERE O.OrderDate > {fn curdate()} and O.OrderDate <= CURRENT_TIMESTAMP 

我的目標是從當天開始直到時間查詢運行檢索整整一天的數據(中央東區)。但是我發現機器和sql server都屬於兩個不同的時間,因此我沒有得到正確的結果。

任何人都可以請告訴我如何修復我的聲明以獲得準確的結果?

服務器時區是中央和我的機器是在東部時區

感謝提前:)

+0

UTC可能在這種情況下,更好地爲您。 –

+0

可以請您詳細說明一下嗎?對不起,我第一次處理時間 – AZee

+0

我從來沒有親自處理這樣的時間情況。 UTC在這樣的情況下才有意義,因爲它具有普遍性。縱觀你的查詢,current_timestamp函數應該從運行SQL實例的服務器上檢索時間戳。不是查詢執行的PC。您是否驗證了在運行查詢時缺少記錄?服務器運行的是什麼版本的SQL? –

回答

0

我得到了它的

解決
WHERE O.OrderDate BETWEEN CAST(Convert(varchar(10), DateAdd(d, 0, getdate()), 101) + ' 12:00 AM' as datetime) AND DATEADD(hour, -5, GETUTCDATE())