问题描述
如果我运行以下查询,我会得到非常奇怪的结果。我从 1 月 4 日星期一开始获得 第 1 周(正如预期的那样)。我在一组查询中使用它来计算每周的 Covid 病例数,这完全毁了我的一天:/
SELECT date_part('week','2021-01-01'::date) as week,date_part('year','2021-01-01'::date) as year;
week year
53 2021
版本:Postgresql 12.3 on x86_64-pc-linux-musl,由 gcc (Alpine 9.3.0) 9.3.0 编译,64 位
解决方法
As documented in the manual 'week' 使用 ISO definition 作为第一周。
要获得相应的 (ISO) 年份,请使用 'isoyear'
SELECT date_part('week','2021-01-01'::date) as week,date_part('isoyear','2021-01-01'::date) as year;
以上正确 returns 53,2020