获取年份中的日期并生成数字



我正在生成2020年到2022年之间的日期序列。我用红移来写这个查询。从这个序列中,我提取天、周等。我试着得到一年中的一天,但我得到的是一个月中的一天。我还尝试从给定数字开始生成一系列数字(如2020001,2020002,…,2021001, 2021001…2021365),但它也不起作用。问题是我找不到类似的东西。有人能帮我解答这个问题吗?

SELECT date '2014-12-31' + INTERVAL yydd,
DATE_PART(day, yydd) day,
DATE_PART(dayofweek, yydd) day_week_number,
DATE_PART(day, yydd) day_month_number,
DATE_PART(QUARTER, yydd) quarter_number,
FROM  generate_series(1, (date '2031-01-01' - date '2015-01-01')) interval;

工作代码如下所示

根据这里的文档,date_part函数中用于生成一年中的一天的合适字符串可以是'dayofyear', 'doy', 'dy'或'yearday'

SELECT
intrvl.*
, DATEADD(day, intrvl,'2000-01-01'::date)::date yydd
, DATE_PART('doy', yydd) AS day_of_year
, DATE_PART(dayofweek, yydd) AS day_of_week_number
, DATE_PART(day, yydd) AS day_of_month_number
, DATE_PART(QUARTER, yydd) AS quarter_number
FROM  generate_series(0,365*10) intrvl

相关内容

  • 没有找到相关文章

最新更新