【发布时间】:2018-12-07 13:57:11
【问题描述】:
我的数据库在 Azure 中。我需要我当地(以色列)的时间。
SELECT GETDATE() AT TIME ZONE 'Israel Standard Time',
DATEPART(HOUR,(GETDATE() AT TIME ZONE 'Israel Standard Time'))
返回 13:
(No column name) (No column name)
2018-12-07 13:43:34.893 +02:00 13
我需要它返回 15,因为它是 13 (+2)=15 我想在不添加 2 个硬编码的情况下做到这一点。
【问题讨论】:
-
GETDATE()已经是本地时间(对于“本地”的某些值)并且没有时区信息 - 除非做出假设,否则使用AT TIME ZONE添加一些不会产生正确的结果。你确定你不想要像SELECT DATEPART(HOUR, SYSDATETIMEOFFSET() AT TIME ZONE 'Israel Standard Time')这样的东西吗?请注意,如果日期因偏移而发生变化,则“小时”可能信息不足。
标签: sql sql-server tsql datetimeoffset