PostgreSQL基于指定周四日期获取上周四与前一日周三的查询求助
解决PostgreSQL中基于周四日期获取前一个周三和周四的问题
针对给定的周四日期(如2024-01-18),需明确两个"前一个"的逻辑差异:
- 前一个周三:指当前日期的前一天(周四的前一天自然是周三)
- 前一个周四:指上周的周四(即当前日期往前推7天的周四)
正确查询语句
SELECT '2024-01-18'::date - INTERVAL '1 day' AS previous_wednesday, '2024-01-18'::date - INTERVAL '7 days' AS previous_thursday;
预期结果验证
执行后将得到符合需求的结果:
| previous_wednesday | previous_thursday |
|---|---|
| 2024-01-17 | 2024-01-11 |
原查询问题说明
你之前使用date_trunc('week', ...)的方式,是基于周起始日做偏移计算,会直接定位到上周的时间节点,因此得到的是上周三而非当前日期的前一天。对于周四日期来说,直接对原日期减1天,是获取前一天周三最直接准确的方式。
内容的提问来源于stack exchange,提问作者executable
相关产品推荐
相关产品推荐

