SQL Server 2008 函数将 GMT 时间转换为 AEST 并采用夏令时
Posted
技术标签:
【中文标题】SQL Server 2008 函数将 GMT 时间转换为 AEST 并采用夏令时【英文标题】:SQL Server 2008 Function Convert GMT time to AEST and also take of daylight Saving 【发布时间】:2014-07-27 03:52:38 【问题描述】:我需要将时间从 GMT 格式转换为 AEST(澳大利亚),并妥善处理夏令时。
任何想法或帮助将不胜感激。
谢谢 沙达布
【问题讨论】:
你是指 GMT 还是 UTC? 【参考方案1】:mysql 提供了一个CONVERT_TZ
函数。为此,必须填充 time_zone%
表。
我不需要重复 MySQL 文档。
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_convert-tz
【讨论】:
对不起,我问的是 SQL Server 2008。【参考方案2】:在 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,AEDT 为 +11:00,具体取决于年中的日期)。
【讨论】:
以上是关于SQL Server 2008 函数将 GMT 时间转换为 AEST 并采用夏令时的主要内容,如果未能解决你的问题,请参考以下文章