我正在尋找一種方法,如何從sql server有效地請求數據,假設請求來自不同的時區。SQL服務器文化連接
從澳大利亞(UTC/GMT11小時)例如請求將要求比2005-11-19 18:00:00
,但服務器在加拿大(UTC/GMT -5小時)和較舊的記錄所有記錄保存爲加拿大人。
通過UI加拿大用戶會挑選「2005-11-19 18:00:00」的日期,我們將做到這一點seelct到SQL Server從澳大利亞用戶假設用戶選取相同的日期
select * from table1 where added < '2005-11-19 18:00:00'
同一選擇通過UI必須
select * from table1 where added < '2005-11-19 02:00:00'
我的問題是什麼是查詢到不同的時區的SQL Server和得到的結果假定時區的正確途徑。
像Effectively Converting dates between UTC and Local (ie. PST) time in SQL 2005這樣的答案不起作用,因爲我想通過連接聲明式執行它,並且不希望將任何邏輯放在sql中。
您是否認爲在代碼中進行所有轉換完全是正確的方式?我發現這種方式非常手動,可能會有更智能/自動的方式。 – Cherven 2011-12-21 15:40:02
那麼,手冊是相對的。我發現它是最靈活的。我將UTC上的所有時間戳存儲在服務器上,並根據需要處理本地化 - 這可能會發生變化。 – TomTom 2011-12-21 15:57:26