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 时,时间显示结果中的 月、日 受排序影响。
相关推荐
Li zlun20 分钟前
MySQL 性能监控与安全管理完全指南
数据库·mysql·安全
养生技术人1 小时前
Oracle OCP认证考试题目详解082系列第48题
运维·数据库·sql·oracle·database·开闭原则·ocp
海阳宜家电脑1 小时前
Lazarus使用TSQLQuery更新的一点技巧
数据库·lazarus·tsqlquery
丨我是张先生丨2 小时前
SQLSERVER 查找存储过程中某个变量
数据库
感谢地心引力2 小时前
【Python】基于 PyQt6 和 Conda 的 PyInstaller 打包工具
数据库·python·conda·pyqt·pyinstaller
lypzcgf4 小时前
Coze源码分析-资源库-编辑数据库-后端源码-数据存储层
数据库·coze·coze源码分析·智能体平台·ai应用平台
jackaroo20204 小时前
后端_Redis 分布式锁实现指南
数据库·redis·分布式
liuy96154 小时前
迷你论坛项目
数据库
杨云龙UP4 小时前
小工具大体验:rlwrap加持下的Oracle/MySQL/SQL Server命令行交互
运维·服务器·数据库·sql·mysql·oracle·sqlserver
阿巴~阿巴~4 小时前
使用 C 语言连接 MySQL 客户端(重点)
服务器·数据库·sql·mysql·ubuntu