有没有办法获得特定时区的当前时间?
例如:GetDateTime(“摩洛哥标准时间”)
它应该给出当地时区的时间“摩洛哥标准时间”
提前谢谢你,梅林
发布于 2016-08-20 18:10:48
我知道这个问题很陈旧,但也许答案会对某些人有所帮助。
如果您使用的是SQL Server2016,则可以使用新功能AT TIME ZONE。让我们一步一步地得到你需要的结果。
首先,使用函数SYSDATETIMEOFFSET()来检索协调世界时时区的当前日期和时间。此函数的返回类型为DATETIMEOFFSET,它不仅存储日期,还存储相关的时区信息:
SELECT SYSDATETIMEOFFSET()
-- Result is 2016-08-20 13:15:25.3760873 +03:00然后是with AT TIME ZONE语句。这将返回您需要的时区中的DATETIMEOFFSET:
SELECT SYSDATETIMEOFFSET() AT TIME ZONE 'Morocco Standard Time'
-- Result is 2016-08-20 11:15:25.3760873 +01:00此外,如果您希望丢失时区信息并使用DATETIME,则可以将上述结果转换为DATETIME
SELECT CAST( SYSDATETIMEOFFSET() AT TIME ZONE 'Morocco Standard Time' AS DATETIME)
-- Result is 2016-08-20 11:15:25.376https://stackoverflow.com/questions/24033930
复制相似问题