【问题标题】:How to return all dates in mm/dd/yyyy format by passing quarter and year如何通过季度和年份以 mm/dd/yyyy 格式返回所有日期
【发布时间】:2021-08-10 09:19:50
【问题描述】:

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

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

【问题讨论】:

  • 您可能需要使用某种日期维度来跟踪每个季度的日期。这通常用于数据仓库,允许分析师在“自然”季度或财务季度(以及月、周、年等)中选择日期。 Google Calendar Dimension,您很可能会找到大量脚本来为您生成一个。
  • 这是一个关于获取一个月内所有天数的问题,也许可以进行更改以获取一个季度内的三个月内的天数:stackoverflow.com/questions/37027684/…
  • 请注意,全球的财务季度各不相同。

标签: sql-server sql-date-functions


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-01-02
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    相关资源
    最近更新 更多