gpt4 book ai didi

postgresql - 如何在 postgresql 中编写函数以根据传递给它的月份名称获取月份的开始日期和结束日期

转载 作者:行者123 更新时间:2023-11-29 13:08:35 26 4
gpt4 key购买 nike

我有一个场景,我需要传递月份名称并获取该月份的开始和结束日期。(例如 -> 如果用户选择一月,它应该返回 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 中的一个函数,它可以根据传递给它的月份名称返回月份的开始日期和结束日期。

最佳答案

demo:db<>fiddle

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;
  1. 获取当前年份:date_part('year', CURRENT_DATE)
  2. 从年月中获取日期:to_date(<month text> || <year from 1.>, 'MonthYYYY') .这给出了月份的第一天,因为没有给出日期值
  3. 按照您已经描述的那样计算月末日
  4. 给出两列

关于postgresql - 如何在 postgresql 中编写函数以根据传递给它的月份名称获取月份的开始日期和结束日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57918207/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com