Я пытаюсь создать серию, которая показывает первый день каждого месяца в PostgreSQL
select generate_series('2020-01-01T00:00:00+03:00'::timestamptz, '2020-12-31T23:59:59+03:00'::timestamptz, '1 month');
, этот запрос возвращает этот результат
generate_series
------------------------
2019-12-31 21:00:00+00
2020-01-31 21:00:00+00
2020-02-29 21:00:00+00
2020-03-29 21:00:00+00
2020-04-29 21:00:00+00
2020-05-29 21:00:00+00
2020-06-29 21:00:00+00
2020-07-29 21:00:00+00
2020-08-29 21:00:00+00
2020-09-29 21:00:00+00
2020-10-29 21:00:00+00
2020-11-29 21:00:00+00
2020-12-29 21:00:00+00
(13 rows)
, но я ожидаю, что
generate_series
------------------------
2019-12-31 21:00:00+00
2020-01-31 21:00:00+00
2020-02-29 21:00:00+00
2020-03-31 21:00:00+00
2020-04-30 21:00:00+00
2020-05-31 21:00:00+00
2020-06-30 21:00:00+00
2020-07-31 21:00:00+00
2020-08-31 21:00:00+00
2020-09-30 21:00:00+00
2020-10-31 21:00:00+00
2020-11-30 21:00:00+00
(12 rows)
Где я go ошибся?
также нет проблем с использованием этого способа
select generate_series('2020-01-01T00:00:00'::timestamptz, '2020-12-31T23:59:59'::timestamptz, '1 month');
generate_series
------------------------
2020-01-01 00:00:00+00
2020-02-01 00:00:00+00
2020-03-01 00:00:00+00
2020-04-01 00:00:00+00
2020-05-01 00:00:00+00
2020-06-01 00:00:00+00
2020-07-01 00:00:00+00
2020-08-01 00:00:00+00
2020-09-01 00:00:00+00
2020-10-01 00:00:00+00
2020-11-01 00:00:00+00
2020-12-01 00:00:00+00