我有一种情况,我需要传递月份名称并获取该月的开始日期和结束日期。(例如->如果用户选择一月,则应返回01/01/2019和31/01/2019。
我可以获得当前月份的开始和结束日期。
本月的开始日期-
select date(date_trunc('month', current_date))
当月的结束日期-
select date(date_trunc('month', current_date) + interval '1 month - 1 day');
我想要Postgresql中的一个函数,该函数可以根据传递给它的月份的名称返回月份的开始日期和结束日期。
答案 0 :(得分:1)
CREATE OR REPLACE FUNCTION get_month_start_and_end(_month text)
RETURNS TABLE (start_date date, end_date date)
AS $$
BEGIN
RETURN QUERY
SELECT
_start_date,
(_start_date + interval '1 month -1 day')::date
FROM (
SELECT
to_date(_month || date_part('year', CURRENT_DATE), 'MonthYYYY') AS _start_date
) s;
END;
$$ LANGUAGE plpgsql;
date_part('year', CURRENT_DATE)
to_date(<month text> || <year from 1.>, 'MonthYYYY')
。这是月份的第一天,因为没有给出日期值