暂无图片
postgresql 两个月份,如何计算一共有几个月?
我来答
分享
暂无图片 匿名用户
postgresql 两个月份,如何计算一共有几个月?

例如2020-12 至2022-07

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
刘贵宾

SELECT EXTRACT(YEAR FROM age) * 12 + EXTRACT(MONTH FROM age) AS months_between

FROM age(TIMESTAMP '2022-07-01', TIMESTAMP '2020-12-01') AS t(age);


如果要多次执行此操作,则可以定义以下函数:

CREATE FUNCTION months_between (t_start TIMESTAMP, t_end TIMESTAMP)
    RETURNS INTEGER
    AS $$
        SELECT
            (
                12 * EXTRACT('years' FROM a.i) + EXTRACT('months' FROM a.i)
            )::INTEGER
        FROM (
            VALUES (justify_interval($2 - $1))
        ) AS a (i)
    $$
    LANGUAGE SQL
    IMMUTABLE
    RETURNS NULL ON NULL INPUT;


这样你就可以

SELECT months_between('2020-01-01', now());


比如你提供的日期:

SELECT months_between('2020-12-01', '2022-07-01');

暂无图片 评论
暂无图片 有用 2
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏