为什么 2017-01-01 的日期部分星期返回 52?

Wor*_*orm 7 sql postgresql date

运行查询会按预期select date_part('week','2016-12-31'::date)返回结果52,因为这是 2016 年的最后一周。

运行查询会按预期select date_part('week','2017-01-02'::date)返回结果1,因为这是 2017 年的第一周。

但是,运行查询select date_part('week','2017-01-01'::date)会返回52错误的结果。

这与 2017-01-01 是星期日有关系吗?

Gor*_*off 7

文档中对此进行了解释。 'week'基于 ISO 周,即:

星期

一年中 ISO 8601 周编号的周数。根据定义,ISO 周从星期一开始,一年的第一周包含该年的 1 月 4 日。换句话说,一年的第一个星期四是该年的第一周。