我們在SQL Server 2008中的數據,與多個日期時間列。由於SQL Server中的日期格式是一個很大的整數值,即自1970年以來的秒數,我們使用DATEADD()
功能,將其轉換成實際的日期時間格式。但是我們面臨的問題是,當我們使用DATEADD()時,我們得到UTC時區的數據,而我們希望在EST中獲得數據。我想簡單地使用-4從時間,但NOV期間HR - MAR我們領先1個HR,因爲不同的是5小時夏時制時間處於關閉狀態。是否有任何功能可以用於考慮夏令時。任何幫助表示讚賞。UTC到EST SQL Server 2008中
Current Function -> DATEADD(s, columnName, '01/01/1970 00:00:00')
問候,薩赫勒
有沒有什麼本地。這非常困難。夏令時的日期在過去幾年中發生了變化。有些州不承認夏令時。即使亞利桑那州的整個州都不承認夏令時。這只是美國的複雜情況。一旦你走出這些邊界就會變得更加複雜。 –
有些整個庫是嚴格爲了處理日期/時間而編寫的(*如NodaTime,Momentjs等*),但對於我所知的Sql Server而言,因爲這通常是在應用程序層而不是持久層中解決的。 – Igor
您可以導入一個包裝TimeZoneInfo類的程序集,並從Windows註冊表值中讀取時區偏移量(與其相同的方式窗口)。這些值在您應用Windows更新時會發生零星更新。時區信息不僅根據預定的時間(DST或其他)而變化,而且隨着地區和國家認爲合適的臨時基礎變化。我會使用一個經過測試的庫並將其導入到sql server中。 –