DateStyle 是一个 配置参数,用于确定日期和时间值的显示格式。它还决定了如何解释模糊的日期输入值。
DateStyle 在 PostgreSQL 7.3 中引入。
默认值
DateStyle 的默认值为:ISO, MDY。
但是 initdb 会在生成的 postgresql.conf 文件中根据所选 lc_time 区域设置的行为创建一个条目。
用法
出于历史原因,DateStyle 由两个用逗号分隔的元素组成:
- 输出格式规范(
ISO、Postgres、SQL或German) - 年/月/日顺序的输入/输出规范(
DMY、MDY或YMD)
年/月/日顺序规范存在以下同义词:
DMY:Euro、EuropeanMDY:US、NonEuro、NonEuropean
每个元素都可以单独设置,例如 SET DateStyle TO 'SQL' 或 SET DateStyle TO 'YMD'。
按 PostgreSQL 版本详细信息
DateStyle (PostgreSQL 19)
| 设置 | ISO, MDY |
| 单位 | |
| 类别 | 客户端连接默认值 / 区域设置和格式 |
| 简短描述 | 设置日期和时间值的显示格式。 |
| 扩展描述 | 还控制模糊日期输入的解释。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 配置文件 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | ISO, MDY |
| 重置值 | ISO, MDY |
| 源文件 | /home/barwick/devel/postgres/data/19/postgresql.conf |
| 源行 | 777 |
| 需要重启 | false |
文档:DateStyle
DateStyle (PostgreSQL 18)
| 设置 | ISO, MDY |
| 单位 | |
| 类别 | 客户端连接默认值 / 区域设置和格式 |
| 简短描述 | 设置日期和时间值的显示格式。 |
| 扩展描述 | 还控制模糊日期输入的解释。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 配置文件 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | ISO, MDY |
| 重置值 | ISO, MDY |
| 源文件 | /home/barwick/devel/postgres/data/18/postgresql.conf |
| 源行 | 777 |
| 需要重启 | false |
文档:DateStyle
DateStyle (PostgreSQL 17)
| 设置 | ISO, MDY |
| 单位 | |
| 类别 | 客户端连接默认值 / 区域设置和格式 |
| 简短描述 | 设置日期和时间值的显示格式。 |
| 扩展描述 | 还控制模糊日期输入的解释。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 配置文件 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | ISO, MDY |
| 重置值 | ISO, MDY |
| 源文件 | /home/barwick/devel/postgres/data/17/postgresql.conf |
| 源行 | 736 |
| 需要重启 | false |
文档:DateStyle
DateStyle (PostgreSQL 16)
| 设置 | ISO, MDY |
| 单位 | |
| 类别 | 客户端连接默认值 / 区域设置和格式 |
| 简短描述 | 设置日期和时间值的显示格式。 |
| 扩展描述 | 还控制模糊日期输入的解释。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 配置文件 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | ISO, MDY |
| 重置值 | ISO, MDY |
| 源文件 | /home/barwick/devel/postgres/data/16/postgresql.conf |
| 源行 | 715 |
| 需要重启 | false |
文档:DateStyle
DateStyle (PostgreSQL 15)
| 设置 | ISO, MDY |
| 单位 | |
| 类别 | 客户端连接默认值 / 区域设置和格式 |
| 简短描述 | 设置日期和时间值的显示格式。 |
| 扩展描述 | 还控制模糊日期输入的解释。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 配置文件 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | ISO, MDY |
| 重置值 | ISO, MDY |
| 源文件 | /home/barwick/devel/postgres/data/15/postgresql.conf |
| 源行 | 711 |
| 需要重启 | false |
文档:DateStyle
DateStyle (PostgreSQL 14)
| 设置 | ISO, MDY |
| 单位 | |
| 类别 | 客户端连接默认值 / 区域设置和格式 |
| 简短描述 | 设置日期和时间值的显示格式。 |
| 扩展描述 | 还控制模糊日期输入的解释。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 配置文件 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | ISO, MDY |
| 重置值 | ISO, MDY |
| 源文件 | /home/barwick/devel/postgres/data/14/postgresql.conf |
| 源行 | 694 |
| 需要重启 | false |
文档:DateStyle
DateStyle (PostgreSQL 13)
| 设置 | ISO, MDY |
| 单位 | |
| 类别 | 客户端连接默认值 / 区域设置和格式 |
| 简短描述 | 设置日期和时间值的显示格式。 |
| 扩展描述 | 还控制模糊日期输入的解释。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 配置文件 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | ISO, MDY |
| 重置值 | ISO, MDY |
| 源文件 | /home/barwick/devel/postgres/data/13/postgresql.conf |
| 源行 | 679 |
| 需要重启 | false |
文档:DateStyle
DateStyle (PostgreSQL 12)
| 设置 | ISO, MDY |
| 单位 | |
| 类别 | 客户端连接默认值 / 区域设置和格式 |
| 简短描述 | 设置日期和时间值的显示格式。 |
| 扩展描述 | 还控制模糊日期输入的解释。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 配置文件 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | ISO, MDY |
| 重置值 | ISO, MDY |
| 源文件 | /home/barwick/devel/postgres/data/12/postgresql.conf |
| 源行 | 650 |
| 需要重启 | false |
文档:DateStyle
DateStyle (PostgreSQL 11)
| 设置 | ISO, MDY |
| 单位 | |
| 类别 | 客户端连接默认值 / 区域设置和格式 |
| 简短描述 | 设置日期和时间值的显示格式。 |
| 扩展描述 | 还控制模糊日期输入的解释。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 配置文件 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | ISO, MDY |
| 重置值 | ISO, MDY |
| 源文件 | /home/barwick/devel/postgres/data/11/postgresql.conf |
| 源行 | 590 |
| 需要重启 | false |
文档:DateStyle
DateStyle (PostgreSQL 10)
| 设置 | ISO, MDY |
| 单位 | |
| 类别 | 客户端连接默认值 / 区域设置和格式 |
| 简短描述 | 设置日期和时间值的显示格式。 |
| 扩展描述 | 还控制模糊日期输入的解释。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 配置文件 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | ISO, MDY |
| 重置值 | ISO, MDY |
| 源文件 | /home/barwick/devel/postgres/data/10/postgresql.conf |
| 源行 | 566 |
| 需要重启 | false |
文档:DateStyle
DateStyle (PostgreSQL 9.6)
| 设置 | ISO, MDY |
| 单位 | |
| 类别 | 客户端连接默认值 / 区域设置和格式 |
| 简短描述 | 设置日期和时间值的显示格式。 |
| 扩展描述 | 还控制模糊日期输入的解释。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 配置文件 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | ISO, MDY |
| 重置值 | ISO, MDY |
| 源文件 | /home/barwick/devel/postgres/data/96/postgresql.conf |
| 源行 | 553 |
| 需要重启 | false |
文档:DateStyle
DateStyle (PostgreSQL 9.5)
| 设置 | ISO, MDY |
| 单位 | |
| 类别 | 客户端连接默认值 / 区域设置和格式 |
| 简短描述 | 设置日期和时间值的显示格式。 |
| 扩展描述 | 还控制模糊日期输入的解释。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 配置文件 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | ISO, MDY |
| 重置值 | ISO, MDY |
| 源文件 | /home/barwick/devel/postgres/data/95/postgresql.conf |
| 源行 | 535 |
| 需要重启 | false |
文档:DateStyle
DateStyle (PostgreSQL 9.4)
| 设置 | ISO, MDY |
| 单位 | |
| 类别 | 客户端连接默认值 / 区域设置和格式 |
| 简短描述 | 设置日期和时间值的显示格式。 |
| 扩展描述 | 还控制模糊日期输入的解释。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 配置文件 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | ISO, MDY |
| 重置值 | ISO, MDY |
| 源文件 | /home/barwick/devel/postgres/data/94/postgresql.conf |
| 源行 | 522 |
文档:DateStyle
DateStyle (PostgreSQL 9.3)
| 设置 | ISO, MDY |
| 单位 | |
| 类别 | 客户端连接默认值 / 区域设置和格式 |
| 简短描述 | 设置日期和时间值的显示格式。 |
| 扩展描述 | 还控制模糊日期输入的解释。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 配置文件 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | ISO, MDY |
| 重置值 | ISO, MDY |
| 源文件 | /home/barwick/devel/postgres/data/93/postgresql.conf |
| 源行 | 504 |
文档:DateStyle
DateStyle (PostgreSQL 9.2)
| 设置 | ISO, MDY |
| 单位 | |
| 类别 | 客户端连接默认值 / 区域设置和格式 |
| 简短描述 | 设置日期和时间值的显示格式。 |
| 扩展描述 | 还控制模糊日期输入的解释。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 配置文件 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | ISO, MDY |
| 重置值 | ISO, MDY |
| 源文件 | /home/barwick/devel/postgres/data/92/postgresql.conf |
| 源行 | 498 |
文档:DateStyle
DateStyle (PostgreSQL 9.1)
| 设置 | ISO, MDY |
| 单位 | |
| 类别 | 客户端连接默认值 / 区域设置和格式 |
| 简短描述 | 设置日期和时间值的显示格式。 |
| 扩展描述 | 还控制模糊日期输入的解释。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 配置文件 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | ISO, MDY |
| 重置值 | ISO, MDY |
| 源文件 | /home/barwick/devel/postgres/data/91/postgresql.conf |
| 源行 | 481 |
文档:DateStyle
DateStyle (PostgreSQL 9.0)
| 设置 | ISO, MDY |
| 单位 | |
| 类别 | 客户端连接默认值 / 区域设置和格式 |
| 简短描述 | 设置日期和时间值的显示格式。 |
| 扩展描述 | 还控制模糊日期输入的解释。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 配置文件 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | ISO, MDY |
| 重置值 | ISO, MDY |
| 源文件 | /home/barwick/devel/postgres/data/90/postgresql.conf |
| 源行 | 462 |
文档:DateStyle
DateStyle (PostgreSQL 8.4)
| 设置 | ISO, MDY |
| 单位 | |
| 类别 | 客户端连接默认值 / 区域设置和格式 |
| 简短描述 | 设置日期和时间值的显示格式。 |
| 扩展描述 | 还控制模糊日期输入的解释。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 配置文件 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | ISO, MDY |
| 重置值 | ISO, MDY |
| 源文件 | /home/barwick/devel/postgres/data/84/postgresql.conf |
| 源行 | 433 |
文档:DateStyle
DateStyle (PostgreSQL 8.3)
| 设置 | |
| 单位 | |
| 类别 | 客户端连接默认值 / 区域设置和格式 |
| 简短描述 | 设置日期和时间值的显示格式。 |
| 扩展描述 | 还控制模糊日期输入的解释。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 配置文件 |
| 最小值 | |
| 最大值 |
文档:DateStyle
DateStyle (PostgreSQL 8.2)
| 设置 | |
| 单位 | |
| 类别 | 客户端连接默认值 / 区域设置和格式 |
| 简短描述 | 设置日期和时间值的显示格式。 |
| 扩展描述 | 还控制模糊日期输入的解释。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 配置文件 |
| 最小值 | |
| 最大值 |
文档:DateStyle
变更历史
- PostgreSQL 7.3
- 添加(提交 f0811a74)
示例
DateStyle 是少数几个规范名称采用“CamelCase”样式的 GUC 之一。
postgres=# SHOW datestyle; DateStyle ----------- ISO, YMD (1 row)
控制对潜在模糊日期字符串的解释
postgres=# SET datestyle TO 'YMD';
SET
postgres=# SELECT '12-11-10'::date;
date
------------
2012-11-10
(1 row)
postgres=# SET datestyle TO 'MDY';
SET
postgres=# SELECT '12-11-10'::date;
date
------------
2010-12-11
(1 row)
将 DateStyle 设置为 Postgres 或 SQL 会生成美国(USA)仍然流行的、反直觉的、模糊的输出格式。
postgres=# SET datestyle TO 'Postgres, YMD';
SET
postgres=# SELECT '12-11-10'::date;
date
------------
11-10-2012
(1 row)
postgres=# SET datestyle TO 'SQL';
SET
postgres=# SELECT '12-11-10'::date;
date
------------
11/10/2012
(1 row)
German 输出格式使用句点作为分隔符。
postgres=# SET datestyle TO 'German, DMY';
SET
postgres=# SELECT '12-11-10'::date;
date
------------
12.11.2010
(1 row)
参考资料
- PostgreSQL 文档: DateStyle
有用链接
- ISO 8601 - 关于日期格式经典的 XKCD 公共服务公告
