sql - 为什么 2017-01-01 的日期部分周返回 52?
问题描述
运行查询按预期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 是星期天有关吗?
解决方案
这在文档中进行了解释。 'week'
基于 ISO 周,即:
星期
一年中 ISO 8601 周编号的周数。根据定义,ISO 周从星期一开始,一年的第一周包含当年的 1 月 4 日。换句话说,一年中的第一个星期四是在该年的第一周。
推荐阅读
- python - 优化应用以创建带有布尔列的字符串列表
- typescript - Typeorm:未发现数据库架构更改 - 无法生成迁移
- r - 优化 R 中的一个参数时的 optim()
- javascript - 为什么我的函数不等待 API 响应?
- c++ - 移动 ctor 没有被调用
- javascript - 如何将一个对象推到另一个 p5js javascript 前面
- sql - SQLPlus 找不到带有 where 子句的值
- javascript - 控制台记录数据给了我一个空数组(第 12 行),我注意到该值甚至在过滤功能完成之前就记录在控制台中
- python - 使用 QPushbutton 将变量传递到第二个脚本并执行它
- vuejs2 - VueJS2:帮助追踪“TypeError:无法读取未定义的属性'XXX'”