检索和连接历史日期的周数
Retrieve and concatenate weeks of historical dates
我有一些旧的 excel 模板正在尝试复制,它们的设置方式并不理想,但我将它们用作练习。
在 excel table 中有一列如下所示:
|--Week and dates--|
|------------------|
|Week 291214_040115|
|Week 050115_110115|
|Week 120115_180115|
|...etc............|
|...etc............|
|...etc............|
|...etc............|
|Week 030717_090717|
|Week 100717_160717|
使用下面的代码,我尝试重新创建上面的代码,但我遇到了 运行 几个问题。
Declare @sDate date,
@eDate date;
Select @sDate = '2015-01-01',
@eDate = '2017-07-31';
;with cte as
(
select @sDate StartDate,
DATEADD(wk, DATEDIFF(wk, 0, @sDate), 6) EndDate
union all
select dateadd(ww, 1, StartDate),
dateadd(ww, 1, EndDate)
from cte
where dateadd(ww, 1, StartDate)<= @eDate
)
select concat(StartDate,'_',EndDate) as date
from cte
OPTION (MAXRECURSION 0)
这产生的输出是:
|------------Dates-------------|
|2015-01-01_Jan 4 2015 12:00AM|
|2015-01-08_Jan 11 2015 12:00AM|
|2015-01-15_Jan 18 2015 12:00AM|
|2015-01-22_Jan 25 2015 12:00AM|
|2015-01-29_Feb 1 2015 12:00AM|
|2015-02-05_Feb 8 2015 12:00AM|
我还没有将字符串 "week" 连接到脚本中,但基本上如何让脚本看起来更像 excel 模板 table 而不是我的自己的版本。
您可以按如下方式更改您的 select:
select concat('Week ',Format(StartDate, 'ddMMyy'),'_',Format(dateadd(day,6,StartDate),'ddMMyy')) as date
from cte
我有一些旧的 excel 模板正在尝试复制,它们的设置方式并不理想,但我将它们用作练习。
在 excel table 中有一列如下所示:
|--Week and dates--|
|------------------|
|Week 291214_040115|
|Week 050115_110115|
|Week 120115_180115|
|...etc............|
|...etc............|
|...etc............|
|...etc............|
|Week 030717_090717|
|Week 100717_160717|
使用下面的代码,我尝试重新创建上面的代码,但我遇到了 运行 几个问题。
Declare @sDate date,
@eDate date;
Select @sDate = '2015-01-01',
@eDate = '2017-07-31';
;with cte as
(
select @sDate StartDate,
DATEADD(wk, DATEDIFF(wk, 0, @sDate), 6) EndDate
union all
select dateadd(ww, 1, StartDate),
dateadd(ww, 1, EndDate)
from cte
where dateadd(ww, 1, StartDate)<= @eDate
)
select concat(StartDate,'_',EndDate) as date
from cte
OPTION (MAXRECURSION 0)
这产生的输出是:
|------------Dates-------------|
|2015-01-01_Jan 4 2015 12:00AM|
|2015-01-08_Jan 11 2015 12:00AM|
|2015-01-15_Jan 18 2015 12:00AM|
|2015-01-22_Jan 25 2015 12:00AM|
|2015-01-29_Feb 1 2015 12:00AM|
|2015-02-05_Feb 8 2015 12:00AM|
我还没有将字符串 "week" 连接到脚本中,但基本上如何让脚本看起来更像 excel 模板 table 而不是我的自己的版本。
您可以按如下方式更改您的 select:
select concat('Week ',Format(StartDate, 'ddMMyy'),'_',Format(dateadd(day,6,StartDate),'ddMMyy')) as date
from cte