如何解决从 Postgresql 数据库中的日期计算周结束日期 - 错误:运算符不存在:时间戳没有时区 + 双精度
我在 Postgresql 数据库中有一个表(负载),它有一个 TimeStamp 数据类型列 (ship_date)。我可以使用 isodow 计算出星期几,但需要将其添加到 ship_date 列中的日期以得出“周结束日期”。
我们总体上尝试做的事情 load.ship_date + (6 - extract(isodow from loading.ship_date))
我们需要什么 周三周六(周末) 6/30/2021 + 6 - 3 = 7/3/2021
我们收到以下错误 错误:运算符不存在:时间戳不带时区+双精度;
解决方法
您缺少一些类型转换。使用 localtimestamp
作为您的 loads.ship_date
,那就是
SELECT localtimestamp::date + 6 -
extract(dow FROM localtimestamp)::integer;
?column?
════════════
2021-07-03
(1 row)
调用 timestamp
ship_date
类型的列是一个有问题的想法。
使用 date_trunc 到一周的第一天(iso),然后添加间隔 6 天以获得一周的最后一天。
select date_trunc('week',now()) + interval '6 days';
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。