Sql server 特定日期时区的SQL Server
我的SQL Server安装在拉脱维亚服务器上。在下面显示的查询中,我找到了上周四和周五(bruteforce方法!) 我的目标是在本地拉脱维亚服务器上找到上周四00:00:00科威特时间的等效值,在拉脱维亚时区找到上周五00:00:00科威特时间的等效值 目前,拉脱维亚和科威特之间的时差大致相同,但我需要确保在日间储蓄期间仍然如此 我的方法正确吗Sql server 特定日期时区的SQL Server,sql-server,timezone-offset,Sql Server,Timezone Offset,我的SQL Server安装在拉脱维亚服务器上。在下面显示的查询中,我找到了上周四和周五(bruteforce方法!) 我的目标是在本地拉脱维亚服务器上找到上周四00:00:00科威特时间的等效值,在拉脱维亚时区找到上周五00:00:00科威特时间的等效值 目前,拉脱维亚和科威特之间的时差大致相同,但我需要确保在日间储蓄期间仍然如此 我的方法正确吗 SELECT CAST (last_friday AS datetime) AT TIME ZONE 'Arab Standard Time
SELECT
CAST (last_friday AS datetime) AT TIME ZONE 'Arab Standard Time' last_friday,
CAST (last_thursday AS datetime) AT TIME ZONE 'Arab Standard Time' last_thursday,
CURRENT_TIMEZONE() AS CURRENT_TIMEZONE
FROM
(SELECT
DATEAD (DAY,
(CASE
WHEN DATENAME (WEEKDAY, GETDATE()) = 'Friday' THEN -7
WHEN DATENAME (WEEKDAY, GETDATE()) = 'Saturday' THEN -1
WHEN DATENAME (WEEKDAY, GETDATE()) = 'Sunday' THEN -2
WHEN DATENAME (WEEKDAY, GETDATE()) = 'Monday' THEN -3
WHEN DATENAME (WEEKDAY, GETDATE()) = 'Tuesday' THEN -4
WHEN DATENAME (WEEKDAY, GETDATE()) = 'Wednesday' THEN -5
WHEN DATENAME (WEEKDAY, GETDATE()) = 'Thursday' THEN -6
END), CAST (GETDATE() AS date)) AS last_friday,
DATEADD(DAY,
(CASE WHEN DATENAME(WEEKDAY, GETDATE()) = 'Friday' THEN -8
WHEN DATENAME(WEEKDAY, GETDATE()) = 'Saturday' THEN -2
WHEN DATENAME(WEEKDAY, GETDATE()) = 'Sunday' THEN -3
WHEN DATENAME(WEEKDAY, GETDATE()) = 'Monday' THEN -4
WHEN DATENAME(WEEKDAY, GETDATE()) = 'Tuesday' THEN -5
WHEN DATENAME(WEEKDAY, GETDATE()) = 'Wednesday' THEN -6
WHEN DATENAME(WEEKDAY, GETDATE()) = 'Thursday' THEN -7
END), CAST(GETDATE() AS date)) AS last_thursday
) last_dates
此查询返回以下结果:
+--------------------------------+--------------------------------+-----------------------------------------------------------+
| last_friday | last_thursday | CURRENT_TIMEZONE |
+--------------------------------+--------------------------------+-----------------------------------------------------------+
| 2020-09-11 00:00:00.000 +03:00 | 2020-09-10 00:00:00.000 +03:00 | (UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius |
+--------------------------------+--------------------------------+-----------------------------------------------------------+
检查一下另一种在T-SQL中获得“下周五”的简单方法,当DATENAME()出现时,不会出现混乱的情况:…
cascades。。。。