如何将UTC保存的日期转换为时区?

时间:2014-05-27 09:11:34

标签: sql sql-server-2008 tsql

我的服务器在LOCAL时间节省时间,不包括dateTime2中的时区信息。 服务器在-7 GMT。 我需要创建一个显示记录但在TimeZone for User(+1 GMT)转​​换的SQL。

让我们想象一下我有这个记录 '2014-05-27 01:00:00' 应显示为 '2014-05-27 09:00:00'

使用以下脚本我无法获得所需的结果。 你能指出我的问题吗?

SELECT CONVERT(datetime, 
    SWITCHOFFSET(CONVERT(datetimeoffset, 
    '2014-05-27 01:00:00'), 
    DATENAME(TzOffset, SYSDATETIMEOFFSET()))) 

1 个答案:

答案 0 :(得分:0)

您可以使用硬编码的“+01:00”值替换DATENAME()。请记住,在SQL Server中使用TZOffset功能尚不能识别DST,因此在DST切换3月和10月的事件附近会出现差异。