postgresql - 根据确切日期重新计算日期差异
问题描述
我的表 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
解决方案
您可以存储间隔而不是 lastdate,然后在需要时将 lastdate 导出为列 interval_value。所以
select firstdate,first_date+interval_value lastdate ...
或者如果您有版本 12,请将 lastdate 定义为虚拟列。然后正常选择。无论哪种方式,您都有必要的间隔。
推荐阅读
- javascript - 我们如何在javascript中编写క్ష(泰卢固语)unicode(结合“ka”和“sha”字形)?
- javascript - React 有条件地在特定路由中渲染组件
- c++ - 如何使用 std::reduce 将 Windows 上的线程亲和性设置为最大值
- node.js - 使用 Google Sheets Node.js API 更新单元格颜色
- javascript - 如何通过新集合从对象中获取唯一数组?
- sql - 双管做字符串比较?
- javascript - 输入特定文本时,Javascript 输入会运行一个函数
- pytorch - Pytorch:如何创建一个随机整数张量,其中某个百分比具有某个值?例如,25% 为 1,其余为 0
- google-bigquery - BigQuery - 替换字符串中的空格
- c++ - 如何在 Visual Studio 中正确链接文件以运行本机测试?