我想直接将UTC值转换为SQL中的东部时区(任何时区)。我正在尝试在下面的查询中获取DATETIMEOFFSET。
我正在尝试将UTC日期时间以下的时间转换为东部时区。
SELECT CONVERT(DATETIME,'2019-05-27 13:00:00' AT TIME ZONE 'Eastern Standard Time'
我希望上述查询的输出为'2019-05-27 09:00:00',但实际输出为'2019-05-27 13:00:00 -04:00'
答案 0 :(得分:1)
你可以做到
select CONVERT(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, '2019-05-27 13:00:00'), DATEPART(TZOFFSET,
SYSDATETIMEOFFSET() AT TIME ZONE 'Eastern Standard Time')))
答案 1 :(得分:0)
您已经关闭。到目前为止,您已经将传入的日期时间告诉了SQL Server本机时区。现在,您需要告诉它将其转换为其他内容。这应该可以解决问题:
SELECT CONVERT(DATETIME,'2019-05-27 13:00:00')
AT TIME ZONE 'Eastern Standard Time'
AT TIME ZONE 'UTC';
这应该为您提供偏移-00:00
的东西。如果您不希望这样做,请将结果转换回无时区的数据类型。