SQL Server AT TIME ZONE

时间:2018-03-05 15:11:12

标签: sql sql-server

使用AT TIME ZONE有一种方法可以在没有00:00 AT的情况下获得我的UTC时间而不在​​我的查询中使用LEFT。

我这样做:

SELECT GETDATE() AT TIME ZONE 'EASTERN standard time' at time zone 'UTC'
Answer: 2018-03-05 15:08:00.930 +00:00

并尝试查看除了

之外是否有更好的方法
SELECT LEFT(GETDATE() AT TIME ZONE 'EASTERN standard time' at time zone 'UTC',23)

2 个答案:

答案 0 :(得分:1)

以下代码将输出您想要的结果:

CONVERT(VARCHAR, CONVERT(DATETIME, <DateField> AT TIME ZONE 'Eastern Standard Time' AT TIME ZONE 'UTC'), 100) AS [LocalDateTime]

如果您的EST日期为'2018-03-22 22:48:24.893',则输出的UTC日期将为'201年3月22日上午2:48'。

答案 1 :(得分:0)

我想说它是变量并从datetimeoffset获取日期时间信息 转换为datetime将起到作用

    DECLARE @MyUtctime DATETIMEOFFSET

    SET @MyUtctime = (
            SELECT getdate() AT TIME ZONE 'EASTERN standard time' at TIME zone 'UTC'
            )

    SELECT CONVERT(DATETIME, @MyUtctime, 1)

    SELECT getdate()