2013-01-15 126 views
0

我有一個使用datetime像Getdate()一堆查詢的SP。如何在存儲過程中設置日期時間時區

是否有一種方法可以在SP的開頭設置全局標誌以設置日期時間的時區偏移量?

我需要類似set dateformat dmy的東西,但要抵消時區。

+0

只要時區輸入圖片,在數據庫中使用UTC幾乎總是更明智。這不適合你嗎? –

+0

@Damien_The_Unbeliever確定時間是UTC,但我需要抵消它的報告目的 – user1939553

+0

你對這個全球旗幟期待什麼?它應該對你的數據有什麼影響?你能提供一個或兩個代碼片段詳細說明你的要求嗎? – Serg

回答

0

沒有神奇的全局偏移量變量會改變SQL Server爲會話報告的時間。如果你仔細想一想,你會注意到在過程中聲明的變量永遠不會影響服務器。例如,您需要使用SET命令來完成該操作。

我假設應用程序提供基於TZ數據庫或等價物的偏移量,並且您只是想盡可能簡單地應用它。你可以做的是用包裝一個新函數localedate(),它接受偏移量作爲輸入並將其應用於getdate()dateadd()

請記住,保存在數據庫中的日期沒有關聯的時區。將它們本地化將是一項更大的任務。