如何通过传递季度和年份以 mm/dd/yyyy 格式返回所有日期

问题描述

我想显示特定季度中包含的所有日期 例如:如果我的输入是 Q1 和 2021,我的输出应该是

01/01/2021
01/02/2021
--------
---------
-------
03/31/2021

解决方法

我想你可以从这样的事情开始^

DECLARE @InFirstQuarterDate DATE='20210101';
DECLARE @InLAstQuarterDate DATE=DATEADD(DAY,-1,DATEADD(MONTH,3*DATEPART(QUARTER,@InFirstQuarterDate),DATENAME(YEAR,@InFirstQuarterDate)));

 --SELECT @InFirstQuarterDate,@InLAstQuarterDate

WITH CTE AS
(
  SELECT @InFirstQuarterDate AS DD
     UNION ALL
  SELECT DATEADD(DAY,1,C.DD)AS DD
    FROM CTE AS C
     WHERE DATEADD(DAY,C.DD)<=@InLAstQuarterDate
)
SELECT C.DD
 FROM CTE AS C