根据 PostgreSQL 版本 8.1 日期时间函数文档:
dow 星期几(0 - 6;星期日为 0)(仅适用于时间戳值)
SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 5
为什么Date数据类型也不是此函数的有效参数?如果星期几的顺序不因语言环境而改变:
0 - 6; Sunday is 0
为什么需要组合日期类型值的时间分量来确定一周中一天的序数?单独的日期块还不够吗?
原始问题引用了 8.1 版,9.5 文档指出:
EXTRACT(field FROM source)
extract 函数从日期/时间值中检索子字段,例如年或小时。source 必须是时间戳、时间或间隔类型的值表达式。(日期类型的表达式转换为时间戳,因此也可以使用。)字段是一个标识符或字符串,用于选择从源值中提取的字段。extract 函数返回双精度类型的值。以下是有效的字段名称:
再后来,特别是在 dow 下:
道琼斯指数
星期天 (0) 到星期六 (6)
SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40'); Result: 5
请注意,extract 的星期几编号与 to_char(..., 'D') 函数的不同。
这只是一个文档错误。