如何在postgresql中编写函数,根据传递给它的月份名称获取月份的开始日期和结束日期
我有一个场景,需要传递月份名称并获取该月份的开始和结束日期。(例如->如果用户选择一月,则应返回2019年1月1日和2019年1月31日) 我可以得到本月的开始和结束日期 当月的开始日期-如何在postgresql中编写函数,根据传递给它的月份名称获取月份的开始日期和结束日期,postgresql,Postgresql,我有一个场景,需要传递月份名称并获取该月份的开始和结束日期。(例如->如果用户选择一月,则应返回2019年1月1日和2019年1月31日) 我可以得到本月的开始和结束日期 当月的开始日期- select date(date_trunc('month', current_date)) 当月结束日期- select date(date_trunc('month', current_date) + interval '1 month - 1 day'); 我想要postgresql中的函数,它可以
select date(date_trunc('month', current_date))
当月结束日期-
select date(date_trunc('month', current_date) + interval '1 month - 1 day');
我想要postgresql中的函数,它可以根据传递给它的月份名称返回月份的开始日期和结束日期。
date\u部分('year',current\u date)
到_date(| |,'monthyyy')
。这会给出月份的第一个,因为没有给出日期值如果用户选择“一月”,您希望获取哪一年?当前?@S-Man是的,我希望获取当前年。在我的情况下,月份是选择字段,因此,无论用户选择哪个月份,都应返回该月份的开始和结束日期。
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;