PostgreSql 日期时间输出风格及顺序

一、概述

PostgreSQL 中日期时间的输出格式及顺序均由 datestyle 参数控制,两者可以被独立设置或者一起设置。默认值是 ISO,MDY。

二、输出格式

PostgreSQL 中时间/日期类型的输出格式可以设成四种风格之一:ISO 8601、SQL(Ingres)、传统的 POSTGRES(Unix的date格式)或 German 。缺省是 ISO 格式(ISO标准要求使用 ISO 8601 格式)。

sql 复制代码
--ISO 风格
postgres=# set datestyle = 'ISO';
SET
postgres=# select current_timestamp;
       current_timestamp
-------------------------------
 2023-02-27 16:21:40.605044+08
(1 row)

--SQL 风格
postgres=# set datestyle = 'SQL';
SET
postgres=# select current_timestamp;
       current_timestamp
--------------------------------
 02/27/2023 16:22:00.884861 CST
(1 row)

--POSTGRES 风格
postgres=# set datestyle = 'POSTGRES';
SET
postgres=# select current_timestamp;
          current_timestamp
-------------------------------------
 Mon Feb 27 16:22:14.589116 2023 CST
(1 row)

--German 风格
postgres=# set datestyle = 'German';
SET
postgres=# select current_timestamp;
       current_timestamp
--------------------------------
 27.02.2023 16:22:23.080493 CST
(1 row)

三、输入输出顺序

PostgreSQL 中时间输入输出顺序可设置三种顺序之一:DMY、MDY 或 YMD,缺省是 MDY 顺序。

sql 复制代码
--风格为 ISO 时的顺序
postgres=# show datestyle;
 DateStyle
-----------
 ISO, MDY
(1 row)

postgres=# select current_timestamp;
      current_timestamp
------------------------------
 2023-03-06 09:40:51.05446+08
(1 row)

postgres=# set datestyle = 'DMY';
SET
postgres=# select current_timestamp;
       current_timestamp
-------------------------------
 2023-03-06 09:41:24.996177+08
(1 row)

postgres=# set datestyle = 'YMD';
SET
postgres=# select current_timestamp;
       current_timestamp
-------------------------------
 2023-03-06 09:41:35.327119+08
(1 row)

--风格为 SQL 时的顺序
postgres=# set datestyle = 'SQL';
SET
postgres=# show datestyle;
 DateStyle
-----------
 SQL, MDY
(1 row)

postgres=# select current_timestamp;
       current_timestamp
--------------------------------
 03/06/2023 09:45:41.371565 CST
(1 row)

postgres=# set datestyle = 'DMY';
SET
postgres=# select current_timestamp;
       current_timestamp
--------------------------------
 06/03/2023 09:45:48.797223 CST
(1 row)

postgres=# set datestyle = 'YMD';
SET
postgres=# select current_timestamp;
       current_timestamp
--------------------------------
 03/06/2023 09:46:04.377456 CST
(1 row)

--风格为 POSTGRES 时的顺序
postgres=# set datestyle = 'POSTGRES';
SET
postgres=# show datestyle;
   DateStyle
---------------
 Postgres, MDY
(1 row)

postgres=# select current_timestamp;
          current_timestamp
-------------------------------------
 Mon Mar 06 09:48:28.792725 2023 CST
(1 row)

postgres=# set datestyle = 'DMY';
SET
postgres=# select current_timestamp;
         current_timestamp
------------------------------------
 Mon 06 Mar 09:48:43.27396 2023 CST
(1 row)

postgres=# set datestyle = 'YMD';
SET
postgres=# select current_timestamp;
          current_timestamp
-------------------------------------
 Mon Mar 06 09:49:10.084696 2023 CST
(1 row)

--风格为 German 时的顺序
postgres=# set datestyle = 'German';
SET
postgres=# show datestyle;
  DateStyle
-------------
 German, DMY
(1 row)

postgres=# select current_timestamp;
       current_timestamp
--------------------------------
 06.03.2023 09:50:41.023778 CST
(1 row)

postgres=# set datestyle = 'MDY';
SET
postgres=# select current_timestamp;
       current_timestamp
--------------------------------
 06.03.2023 09:50:55.125557 CST
(1 row)

postgres=# set datestyle = 'YMD';
SET
postgres=# select current_timestamp;
       current_timestamp
-------------------------------
 06.03.2023 09:51:16.61567 CST
(1 row)

四、总结

  • 风格为 ISO 和 German 时,时间显示结果不受排序影响。
  • 风格为 SQL 和 POSTGRES 时,时间显示结果中的 月、日 受排序影响。
相关推荐
ma_king2 小时前
入门 java 和 数据库
java·数据库·后端
jiayou645 小时前
KingbaseES 实战:审计追踪配置与运维实践
数据库
NineData17 小时前
NineData 迁移评估功能正式上线
数据库·dba
NineData1 天前
数据库迁移总踩坑?用 NineData 迁移评估,提前识别所有兼容性风险
数据库·程序员·云计算
赵渝强老师1 天前
【赵渝强老师】PostgreSQL中表的碎片
数据库·postgresql
全栈老石1 天前
拆解低代码引擎核心:元数据驱动的"万能表"架构
数据库·低代码
倔强的石头_2 天前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
jiayou643 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤4 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
爱可生开源社区5 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba