Sql-Server
SQL Server 2008 及更高版本 - 使用日期時間進行全球化
我的應用程序是獨立的 Windows 應用程序。數據庫是 SQL Server 2008 及更高版本。該應用程序將部署在全球各地的系統上。使用者應以自己的文化查看日期/時間值。
數據庫中有一些日期、時間和日期時間列。我應該儲存它們:
- 基於 SQL Server 日期/時間?
- 基於 Windows 日期/時間?
- 基於 Windows 日期/時間轉換為 UTC?
我認為我根本不需要研究這個全球化部分,因為應用程序是獨立的,並且永遠不會共享數據庫。數據將僅保留在同一台機器上,不會移動到中心位置。所以,我猜第二個選項最適合。
我讀了這個問題及其答案。
DateTimeOffset
看起來很奇怪;它通常用於行版本控制。我不確定這裡是否需要它。這個答案甚至不被接受;不確定它是否真的對 OP 有幫助。
對於永遠不會使用本地系統時鐘時間合併的獨立系統具有吸引力。無需轉換進入或來自數據庫。你所看到的就是你得到的。無論您如何訪問數據庫,無論是應用程序、報告還是臨時查詢,結果都不需要後處理。
然而..有些地方觀察者夏令時。這意味著每年一次(?)數據中會有一個小時的差距。一年一次(?)將有一個小時的時間反轉,例如,對標識列進行排序和對日期時間列進行排序將產生不同的排序。
現在,我們不知道您的申請。我們不知道其中任何一個可能有多重要,或者您可能會想到什麼其他解決方法,或者這裡是否有一個瘋狂的時間,或者是否存在問題,或者任何其他可能發揮作用的因素。但如果是 UTC 或時間偏移量是可行的方法。