2015-02-06 64 views
0

我需要獲取此SQL查詢以在運行以下查詢時輸出正確時區中的時間。在SELECT語句中獲取SQL 2012中的正確時區

SELECT 
    CAST([StartDateTime] AS time(0)) AS 'time' 
    from appointment 

當我運行它時,它當前返回所有UTC時間,我需要EST。我已經嘗試了switchoffset命令,它可以工作,但我只需要時間來顯示,而不是日期和時間。

+0

什麼投用'switchoffset'一次返回的日期只是爲了獲得科目編號的時間?順便說一句,你可以展示它返回的內容以及你如何使用它 – Rocketq 2015-02-06 19:52:15

回答

1

這應該工作:

SELECT CAST(DATEADD(HH,-5,[StartDateTime]) as time) AS 'time' 
FROM appointment 
+0

這就是我所需要的。非常感謝分享。 – Derick 2015-02-06 20:02:07

+0

這不考慮夏令時。請記住,美國東部時間的一年的一部分遵循UTC-4而不是UTC-5。 – 2015-02-06 21:15:20

0

試試這個

DECLARE @appointment TABLE 
    (
    id integer, 
    StartDateTime datetime 
) 

INSERT INTO @appointment SELECT 1, '1/1/2014 13:30' 
INSERT INTO @appointment SELECT 2, '1/4/2014 4:00' 
INSERT INTO @appointment SELECT 3, '1/6/2014 15:30' 
INSERT INTO @appointment SELECT 4, '1/8/2014 23:00' 

SELECT 
    CAST(SWITCHOFFSET(CONVERT(DATETIMEOFFSET, StartDateTime), '+01:00') as TIME(0)) as StartDateTime 
FROM @appointment