首页 > 解决方案 > 如何通过季度和年份以 mm/dd/yyyy 格式返回所有日期

问题描述

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

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

标签: sql-serversql-date-functions

解决方案


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

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,1,C.DD)<=@InLAstQuarterDate
)
SELECT C.DD
 FROM CTE AS C

推荐阅读