【发布时间】:2019-04-24 21:10:51
【问题描述】:
我的表中有一个YYWW 格式的列。我需要转换此YYWW 并获取星期一的日期。
例如:
Input YYWW: 1847
Expected Output: 2018-11-19 [Monday's date in 2018 Week 47]
提前致谢
我尝试了以下但无法正常工作
declare @value int = 1519
SELECT CONVERT(VARCHAR(10), DATEADD(YEAR, 2000 + @value / 100-1900, 7 * (@value % 100)-7), 105);
1851 -Expected 17-12-2018[Monday] Works fine for this year 2018
1752 -Expected 25-12-2017[Monday] but shows 24-12-2017 [Sunday]
1652 -Expected 26-12-2016 [Monday] but shows 24-12-2016 [Saturday]
1519 -Expected 04-05-2015 [Monday] but shows 07-05-2015 [Thursday]
【问题讨论】:
-
到目前为止,您做了哪些尝试?第一个数字可以有的最低值是多少?例如应该假设 7021 是 1970 还是 2070?
-
年份总是在 2000 到 2100 之间
-
另外,你有日历表吗?根据您所在的位置/身份,一周的开始时间会有所不同。
-
好的,我们还需要看看你的尝试。
-
用我的试验编辑了帖子。请看一看。谢谢!
标签: sql-server date format