【问题标题】:Recalculate date difference based on exact dates根据确切日期重新计算日期差异
【发布时间】:2020-01-23 08:28:30
【问题描述】:

我的表 firstdate 和 lastdate 中有 2 列

第一个日期例如是今天 (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


【解决方案1】:

lastdate-firstdate 为您提供日期之间的间隔。您无法取回用于创建原始间隔的文字字符串。

最好的问候,
比亚尼

【讨论】:

    【解决方案2】:

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

    select firstdate,first_date+interval_value lastdate ...
    

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

    【讨论】:

      猜你喜欢
      • 2019-08-24
      • 1970-01-01
      • 1970-01-01
      • 2022-08-14
      • 1970-01-01
      • 1970-01-01
      • 2020-07-03
      • 2018-04-24
      • 1970-01-01
      相关资源
      最近更新 更多