首页 > 解决方案 > 根据确切日期重新计算日期差异

问题描述

我的表 firstdate 和 lastdate 中有 2 列

firstdate 例如今天(2020-1-22)。lastday 是加 1 年减 1 天 (2021-1-21)。

所以我的插入脚本是这样的:

INSERT INTO <table> (firstdate, lastdate) 
VALUES (current_date, current_date + interval '1 year -1 day')

好的,到目前为止一切顺利。现在我想推断它再次使用它。

我的问题是基于这两个日期。我怎样才能从这两个日期再次返回间隔?

当我使用 Postgres 函数age时,我得到以下结果0 years 11 months 30 days

我不能使用这个区间来进行正确的计算,因为区间0 years 11 months 30 days与区间不同1 years -1 days

所以不知何故我需要回来1 years -1 days

标签: postgresql

解决方案


您可以存储间隔而不是 lastdate,然后在需要时将 lastdate 导出为列 interval_value。所以

select firstdate,first_date+interval_value lastdate ...

或者如果您有版本 12,请将 lastdate 定义为虚拟列。然后正常选择。无论哪种方式,您都有必要的间隔。


推荐阅读