我正在尝试编写一个查询,该查询给出两个指定日期之间每个月的天数。
示例:
日期1:2018-01-01
日期2:2018-05-23
预期输出:
month days
2018-01-01,31
2018-02-01,28
2018-03-01,31
2018-04-01,30
2018-05-01,23
答案 0 :(得分:4)
使用generate_series
和group by date_trunc
SELECT date_trunc('month',dt) AS month,
COUNT(*) as days
FROM generate_series( DATE '2018-01-01',DATE '2018-05-23',interval '1 DAY' )
as dt group by date_trunc('month',dt)
order by month;