首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从WeekNumber和WeekDay获取数据

如何从WeekNumber和WeekDay获取数据
EN

Stack Overflow用户
提问于 2019-01-30 23:11:05
回答 2查看 36关注 0票数 1

我有这个数据集与WeekNo (年份和周)- WeekDayName,这是有数据的日子。我要知道具体日期是什么时候。

代码语言:javascript
复制
WeekNo  WeekDayName
------  -----------
201905  Mandag
201905  Mandag
201905  Mandag
201905  Tirsdag
201905  Tirsdag
201905  Tirsdag
201905  Onsdag
201905  Onsdag
201905  Onsdag
201905  Torsdag
201905  Torsdag
201905  Torsdag
201905  Fredag
201905  Fredag
201905  Fredag

预期结果:

代码语言:javascript
复制
WeekNo  WeekDayName Date
------  ----------- -----
201905  Mandag      2019-01-28
201905  Mandag      2019-01-28
201905  Mandag      2019-01-28
201905  Tirsdag     2019-01-29
201905  Tirsdag     2019-01-29
201905  Tirsdag     2019-01-29
201905  Onsdag      2019-01-30
201905  Onsdag      2019-01-30
201905  Onsdag      2019-01-30
201905  Torsdag     2019-01-31
201905  Torsdag     2019-01-31
201905  Torsdag     2019-01-31
201905  Fredag      2019-02-01
201905  Fredag      2019-02-01
201905  Fredag      2019-02-01

我试过了,但它只给了我一个星期的开始:

代码语言:javascript
复制
declare @IntWeek as varchar(20) SET @IntWeek = '201905'

SELECT DATEADD(wk, DATEDIFF(wk, @@DATEFIRST, LEFT(@IntWeek,4)+'-01-01') + (cast(RIGHT(@IntWeek,2) as int)-1), @@DATEFIRST) AS StartOfWeek
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-30 23:22:18

你可以考虑让Calendar Table

在那之后,你可以很容易地得到结果。

代码语言:javascript
复制
select date 
from Auxiliary.Calendar 
where Year = CAST(LEFT(@IntWeek,4) as int)
  and Week = CAST(RIGHT(@IntWeek,2) as int)
  and WeekDay = 'Mondag'
票数 0
EN

Stack Overflow用户

发布于 2019-01-30 23:38:10

创建一个接收两个参数的函数:

1.-你一周的第一天 2.-日期名称

代码语言:javascript
复制
The function must do IF

IF dayName = 'Sunday'
  Return same date
Else If dayName = 'Monday
  Return Data + 1 day

……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54450965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档