[T-SQL] UTC 時間轉換 - 格林威治時間

  • 10886
  • 0
  • 2012-05-28

當我們系統有進行跨國的資料搜集, 必定會遇到不同時區的問題
此時可將各區的時間轉換成格林威治時間以方便將同步顯示各主機資訊...

當我們系統有進行跨國的資料搜集, 必定會遇到不同時區的問題

此時可將各區的時間轉換成 格林威治時間 以方便將同步顯示各主機資訊

 

一般查詢目前時間的Query


		
SELECT 
GETDATE() AS 'Now Time'

image

 

而 SQL Server 本身有提供函式 GETUTCDATE()

直接查詢目前該主機所在時區的UTC 時間

查詢 UTC 目前時間的Query


		
SELECT 
GETUTCDATE() AS 'UTC Time'

image

 

下列兩個 Sample 是將一般時間轉換成 UTC 時間顯示

(1) 不知時區


		
SELECT 
DATEADD(SECOND,DATEDIFF(SECOND,GETDATE(),GETUTCDATE()),'2012-03-13 19:00:00') AS 'UTC+8'

(2) 已知時區(大中華區都需減 8)


		
SELECT 
DATEADD(HH,-8,'2012-03-13 19:00:00') AS 'UTC+8'

 

image