如何将日期划分为静态时段

mzmfm0qo  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(342)

我有一个日期栏,我必须分成两组(a组和b组),每组14天,无限期地穿插在一起。
例如,“2021-04-09”和“2021-04-22”之间的日期对应a组,“2021-04-23”和“2021-05-06”之间的日期对应b组,“2021-05-07”和“2021-05-20”之间的日期对应a组,依此类推。
我想再做一列,计算某个日期是在a组还是在b组。

CREATE TABLE dates (
  date DATE
);

INSERT INTO dates VALUES ('2021-04-20');
INSERT INTO dates VALUES ('2021-04-21');
INSERT INTO dates VALUES ('2021-04-22');
INSERT INTO dates VALUES ('2021-04-23');
INSERT INTO dates VALUES ('2021-04-24');
INSERT INTO dates VALUES ('2021-04-25');

预期结果:
日期组2021-04-20组a2021-04-21组a2021-04-22组a2021-04-23组b2021-04-24组b2021-04-25组b
很抱歉,第一次在一个问题上我不能尝试。我所能做的就是把所有的日期都放在静态里。我甚至不知道能不能算计一下。

select date, 
CASE 
WHEN (date between '2021-04-20' and '2021-04-22') THEN 'GROUP A'
WHEN (date between '2021-04-23' and '2021-04-25') THEN 'GROUP B'
ELSE 'UNKNOWN' END as group
from dates
xriantvc

xriantvc1#

假设基准日期是 2021-04-09 例子

Select *
      ,Grp = 'Group ' + char(65 + (datediff(day,'2021-04-09',date) / 14 ) % 2 )
 From  @dates

结果

date        Grp
2021-04-20  Group A
2021-04-21  Group A
2021-04-22  Group A
2021-04-23  Group B
2021-04-24  Group B
2021-04-25  Group B

相关问题