SQL Server 2008函数将GMT时间转换为AEST,并采用夏令时

时间:2014-06-06 00:20:23

标签: sql sql-server-2008 gmt

我需要将时间从GMT格式转换为AEST(澳大利亚),并且还要正确处理夏令时。

任何想法或帮助将不胜感激。

由于 Shadab

2 个答案:

答案 0 :(得分:0)

MySQL提供CONVERT_TZ功能。为此,必须填充time_zone%表。

我没有必要重复MySQL文档。

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_convert-tz

答案 1 :(得分:0)

在SQL Server 2008 和更新版本中,您可以将DATETIMEOFFSET数据类型用于日期/时间值,包括时区。

还有TODATETIMEOFFSET function将UTC时间转换为基于时区的日期/时间。

因此,在您的情况下,您可以将UTC日期/时间转换为AEST日期/时间,如下所示:

DECLARE @todaysDateTime datetime2;
SET @todaysDateTime = SYSUTCDATETIME();

SELECT 
    TODATETIMEOFFSET (@todaysDateTime, '+10:00'); -- AEST date/time

我真正知道的是,是否有任何东西可以自动处理夏令时设置 - 您可能需要自己处理,通过定义时区偏移量(AEST +10:00,+ 11) :AEDT为00,具体取决于当年的日期。