生成 x 和 y 之间所有日期的列表

Generate list of all dates between x & y

我很想使用我在网上找到的解决方案来生成 昨天 和前一年 1 月 1 日之间所有日期的 table。

SELECT CAST(date_column AS DATE) AS DAY
FROM (
      VALUES (SEQUENCE(cast((YEAR(CURRENT_DATE)-1)||'-01-01' AS date), CURRENT_DATE - INTERVAL '1' DAY , INTERVAL '1' DAY) ) 
    ) AS t1(date_array)
CROSS JOIN UNNEST(date_array) AS t2(date_column)

我在第 3 行遇到错误,因为我不确定如何为我想要的前一年动态构建正确的日期。如果查询是今天 运行,我希望得到 Jan 1st 2019 to Apr 16th 2020

所有日期的列表

嗯。 . .这个有用吗?

SELECT t2.date_column
FROM (VALUES (SEQUENCE(DATE_TRUNC('year', CURRENT_DATE), CURRENT_DATE - INTERVAL '1' DAY ) ) 
     ) t(date_array) CROSS JOIN
     UNNEST(v.date_array) t2(day)