计算两个日期之间每个月的天数-Postgresql

时间:2018-11-09 08:37:15

标签: postgresql

我正在尝试编写一个查询,该查询给出两个指定日期之间每个月的天数。

示例:

日期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

1 个答案:

答案 0 :(得分:4)

使用generate_seriesgroup 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;

Demo