2010-09-02 48 views
1

數據庫駐留在SQL Server 2008中...如何更改DateCreated列的時區?

我有一個數據庫駐留在不同的國家,我希望表DateCreated和DateUpdated有日期和時間的例如。加拿大/ ON /多倫多時區,而不是美國數據庫所在的 時區。

dateCreated會具有默認值GETDATE()和DateUpdated具有以下觸發:

CREATE TRIGGER trigger_name ON table_name 
AFTER UPDATE 
AS 
BEGIN 
    UPDATE table_name 
    SET dateModified = GETDATE() 
    FROM table_name cm JOIN Inserted i 
    ON cm.companyid = i.companyid; 
END 
GO 
+0

難道你不希望時間更新到UTC,所以你不必擔心時區? – LittleBobbyTables 2010-09-02 00:55:18

回答

1

要將datetime從一個時區轉換成另一種,無論是加(目的地時區是當前時區東側)或者減去(向西)兩個區域之間的小時數差異。例如,如果數據庫駐留在加利福尼亞州(太平洋時間),則需要增加三個小時才能獲得多倫多時間(東部時間)。無需爲DST進行調整,因爲兩個時區都能觀察到它。

如上所述,您應該考慮將所有時間轉換爲UTC,並調整您的應用程序以將時間轉換爲當地時間。然後,無論您的數據庫位於何處,您的數據庫都會有正確的時間。