选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

文档 / 配置参数 / 客户端连接默认值

CONFIGURATION PARAMETER客户端连接默认值 / 区域和格式化

DateStyle

设置日期和时间值的显示格式。

Sets the display format for date and time values.

字符串 会话 引入 9.0(基线) 现存至 20 devel 0 次默认值变更

类型
字符串string
上下文
会话任何用户都可在会话内用 SET 修改
默认值
ISO, MDY
引入版本
9.0(基线)
状态
现存

PostgreSQL 18 手册 官方文档

版本轨迹

相对 PostgreSQL 17 无变化。

默认值变迁

ISO, MDY 9.0 – 20

默认值自 PostgreSQL 9.0 起没有变过。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。

手册说明

PostgreSQL 18 手册 · 19.11 客户端连接默认值 本站手册 官方原文

设置日期和时间值的显示格式,以及解释有歧义的日期输入值的规则。由于历史原因, 这个变量包含两个独立的部分:输出格式声明(ISOPostgresSQLGerman)、 输入/输出的年/月/日顺序(DMYMDYYMD)。这些可以被独立设置或者一起设置。关键字EuroEuropeanDMY的同义词;关键字USNonEuroNonEuropeanMDY的同义词。详见Section 8.5。内置默认值是ISO, MDY,但是initdb将用对应于选中的lc_time区域行为的设置初始化配置文件。

机制详解

DateStyle:设置日期和时间值的显示格式。该值包含两个相互独立的部分:输出样式与 DMY/MDY/YMD 字段顺序;后者也决定如何解释有歧义的输入。

DateStyle 属于 USER 上下文。获授权角色可在会话内修改,ALTER ROLE 或 ALTER DATABASE 可为未来会话建立默认值。

它改变客户端边界上的表示、解析或区域行为,而不是物理存储。应与其他区域和格式参数,以及驱动的二进制或类型化协议协同考虑。

调优建议

按典型负载给出的取值思路,不是放之四海皆准的配方:实际取值要看数据量、并发度与硬件。

  • OLTP在线事务处理

    把 DateStyle 视为应用协议,而不是性能旋钮。按角色或连接池统一,并在客户端解析文本时明确固定线格式。

  • OLAP分析与批处理

    为导出、报表与可复现分析任务固定 DateStyle;若文件或 API 具有长期模式,优先在 SQL 中显式格式化。

  • 小规格低配实例与开发机

    除非客户端明确需要其他取值,否则保留上游或区域派生值;小规格服务器不会因调整 DateStyle 获得容量收益。

常见问题

  • 只在一个会话中修改 DateStyle,却认为角色默认值、数据库默认值或其他池化会话也已随之改变。
  • 误以为显示参数会改变已存储值或服务器端类型语义。
  • 未测试文本解析客户端、导出与池化会话就修改角色或数据库默认值。
  • 在意外的 MDY/DMY 顺序下解析 01/02/03 等有歧义值。

演化历史

相邻两个大版本之间的差异,新的在前。版本号链到该版的快照。

  1. PostgreSQL 20 ← 19 沿用 19

    事实沿用 19

逐版本快照

每个收录版本里的 7 项事实,与上一个存在的版本不同的格子带底色。版本号链到该版。

版本 默认值单位上下文类型最小值最大值枚举值
9.0 ISO, MDY 会话 字符串
9.1 ISO, MDY 会话 字符串
9.2 ISO, MDY 会话 字符串
9.3 ISO, MDY 会话 字符串
9.4 ISO, MDY 会话 字符串
9.5 ISO, MDY 会话 字符串
9.6 ISO, MDY 会话 字符串
10 ISO, MDY 会话 字符串
11 ISO, MDY 会话 字符串
12 ISO, MDY 会话 字符串
13 ISO, MDY 会话 字符串
14 ISO, MDY 会话 字符串
15 ISO, MDY 会话 字符串
16 ISO, MDY 会话 字符串
17 ISO, MDY 会话 字符串
18 ISO, MDY 会话 字符串
19 ISO, MDY 会话 字符串
20 沿用 ISO, MDY 会话 字符串

参考资料

同类参数

参数 类型 上下文 默认值 版本变动 最近变更
Client Connection Defaults 客户端连接默认值 12 个
区域和格式化 12
client_encoding 字符串 会话 SQL_ASCII
设置客户端字符集编码。 现存
DateStyle 字符串 会话 ISO, MDY
设置日期和时间值的显示格式。 现存
default_text_search_config 字符串 会话 pg_catalog.simple
设置默认的文本搜索配置。 现存
extra_float_digits 整数 会话 1 121 次
设置浮点值文本输出所使用的数字位数。 现存
icu_validation_level 枚举 会话 warning
设置报告无效 ICU 区域设置字符串所用的消息级别。 现存
IntervalStyle 枚举 会话 postgres
设置 interval 值的显示格式。 现存
lc_messages 字符串 会话(超级用户) 空字符串
设置显示消息所使用的语言。 现存
lc_monetary 字符串 会话 C
设置格式化货币金额所使用的区域设置。 现存
lc_numeric 字符串 会话 C
设置格式化数字所使用的区域设置。 现存
lc_time 字符串 会话 C
设置格式化日期和时间所使用的区域设置。 现存
TimeZone 字符串 会话 GMT 9.22 次
设置用于显示和解释时间戳的时区。 现存
timezone_abbreviations 字符串 会话 未设置 9.11 次
选择时区缩写定义文件。 现存