我正在尝试在 Postgres 中查找去年年底的日期。
这将给我上一年的第一天
SELECT date_trunc('year', now()- interval '1 year')
Run Code Online (Sandbox Code Playgroud)
返回正确的结果#=>2018-01-01 00:00:00
但是尝试从今年的第一天删除 1day 并不能得到上一年的最后一天:
SELECT date_trunc('year', now() - interval '1 day')
Run Code Online (Sandbox Code Playgroud)
返回#=>2018-01-01 00:00:00
当我期待的是 2018-12-31
仍然给我今年的第一天。即使我删除 100 天,它仍然返回相同的结果。
前几年的行为相同:
SELECT date_trunc('year', now()- interval '2 year');
Run Code Online (Sandbox Code Playgroud)
返回#=>2017-01-01 00:00:00 这是我所期望的。
但 :
SELECT date_trunc('year', now()- interval '1 year' - interval '1 day');
Run Code Online (Sandbox Code Playgroud)
2018-01-01 00:00:00 当我期待时返回#=>2017-12-31
-- 为了供将来参考,我将在 2019 年发布此内容。
这是一个操作顺序问题。在减去之前截断日期:
SELECT date_trunc('year', now()) - interval '1 day';
SELECT date_trunc('year', now()- interval '1 year') - interval '1 day';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4132 次 |
| 最近记录: |