#postgresql #date
Вопрос:
В зависимости от месяца я хочу получить дату начала и дату окончания этого месяца. Но я получаю дату начала и дату окончания текущего месяца.
Если я дам 9 (номер месяца) в качестве входного параметра. Результат должен быть:
2021-09-01 -- start date
2021-09-30 -- end date.
вот мой код:
start_date =(select date_trunc('month', current_date-interval '1 year')::date);
end_date = (select date_trunc('month', current_date-interval '1 year') '1month'::interval-
'1day'::interval as end_date);
выходные данные: 2021-10-01,2021-10-31
Ответ №1:
Вы можете использовать make_date
для создания первого числа месяца (для текущего года), а затем использовать interval '1 month - 1day
для поиска последнего дня:
start_date := make_date(extract(year from current_date)::int, 9, 1);
end_date := (make_date(extract(year from current_date)::int, 9, 1) interval '1 month - 1day')::date;