我們使用一個程序,節省了時間標記的UTC時間。我們是猶他州本地公司,所以我們受到夏令時的影響。夏令時間和UTC時間
例如,如果我們現在收到一個電話,它是12:52:00
MST,它將作爲19:52:00
保存在數據庫中。
我首先考慮的是明年當DST於2016年3月13日重新開始,我在準確的同時運行這一點。請問UTC中的時間戳是18:52:00
還是保留在19:52:00
?
我的第二個問題是,如果我轉換數據庫的日期到我的本地時間,所以我必須首先檢查它是否DST,然後如果是花時間-6,如果沒有這將是-7?
因此,使用上面的例子:
IsDST = 01:52:00 (-6)
IsNotDST = 12:52:00 (-7)
我想這是我需要擔心其轉換到/從UTC?
我的主要問題除了兩個以上的擔憂。是否有內置於SQL Server/T-SQL中的任何內容來處理此轉換,還是我需要自己編寫所有內容以滿足需要?
我就開始了,但現在需要在DST工作,如果有必要
DECLARE @declared_start_datetime DATETIME,
@declared_end_datetime DATETIME,
@converted_start_datetime DATETIME,
@converted_end_datetime DATETIME
SET @declared_start_datetime = '11/04/2015 07:00:00' -- Hour we open phones
SET @declared_end_datetime = '11/04/2015 18:00:00' -- Hour we close phones
SET @converted_start_datetime = DATEADD(second, DATEDIFF(second, GETDATE(), GETUTCDATE()), @declared_start_datetime)
SET @converted_end_datetime = DATEADD(second, DATEDIFF(second, GETDATE(), GETUTCDATE()), @declared_end_datetime)
select @declared_start_datetime as 'Declared Start',
@declared_end_datetime as 'Declared End'
select @converted_start_datetime as 'Converted Start',
@converted_end_datetime as 'Converted End'
你的問題根本不清楚。你似乎知道'GETUTCDATE()',你說你想使用UTC時間戳(很好的選擇),你爲什麼要處理本地時間戳? – Amit
哪一次是完全相同的時間:'12:52:00' MST或MDT?有一個重要的差異,同時注意夏令時如何在不同的時間開始,而不是很久以前就有這種轉變。 –
這些報告將由公司中的其他人選擇,他們將選擇報告的運行時間(當地時間)。而且,我預示着他們必須學習/轉換爲UTC的投訴/反彈數量。所以我需要把他們的當地時間和他們轉換爲UTC從數據庫中獲取正確的記錄。 @amit –