2012-05-01 25 views
5

SQL Server的任務/計劃 - 美國與英國夏令時調整SQL Server的任務/計劃 - 美國與英國夏令時調整

我們有需要在16運行SQL代理作業英國基於服務器: 30(美國中部時間 - 這可能看起來很奇怪,但因爲有些數據的可用性)。通常這不會成爲問題,因爲英國和美國的時差是6小時,所以我們安排22:30的工作。

但是由於英國和美國在三月和十一月不同時間夏令時調整自己的時鐘,還有2周的時間,當英國和美國之間的時差爲5小時。

我想實現的方式在SQL服務器能夠識別時間差的這種變化,然後重新安排它的自我使用類似sp_update_schedule工作。

一種方法我已經是得到美國的服務器上當前的時間戳,然後比較,與當前英國時間。如果時差爲5小時,則將工作重新安排到21:30,如果時差爲6小時,則將工作重新安排到22:30。

但是反正可以提出另一種解決方案,或許有這將不涉及拿到美國的服務器上的當前時間戳和理想不必存儲在表夏令調整日期的列表。更有活力的東西可能?

+1

SQL的'GETUTCDATE'可能是有用的 – Paddy

回答

3

事實上,它看起來就像你提到的兩個可行的解決方案:問一個服務器上的時區或存儲關鍵日期的列表。關於爲什麼在下面的第一個鏈接黨的路線。你可以實現你自己的功能(它必須存儲日期列表或向服務器請求偏移量)。或者,您可以獲取時區信息的公共域列表(如下面的第二個鏈接)。還有幾個Web服務會返回偏移量。 Oracle實現該時區數據庫以在指定的時區之間進行轉換,因此如果您已經支持,則可以這樣做。

有一個C#實現可以在第三個鏈接中包裝在CLR函數中。

http://blogs.msdn.com/b/sqlprogrammability/archive/2008/03/18/using-time-zone-data-in-sql-server-2008.aspx

http://www.twinsun.com/tz/tz-link.htm

http://timezone.codeplex.com/

相關問題