问题描述
我的sql Server安装在拉脱维亚服务器上。在下面显示的查询中,我正在找到最后一个星期四和星期五(bruteforce方法!)。
我的目标是在我的拉脱维亚本地服务器上找到上星期四00:00:00科威特时间的等效值,并在拉脱维亚时区上找到上星期五00:00:00科威特时间的等效值。
当前,拉脱维亚和科威特之间的时差通常是相同的,但是我需要确保在白天节省时仍然如此。
我的方法正确吗?
SELECT *
FROM MyTable
WHERE LENGTH(REPLACE(TRIM(Description),CHAR(0x00 using utf8),'')) > 0;
此查询返回以下结果:
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
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)