日期和时间的输入格式包括ISO-8601格式、SQL-兼容格式、 传统POSTGRES格式或者其它的形式。系统支持按照日、月、年的顺序自定义日期输入。如果把DateStyle参数设置为MDY,则按照“月-日-年”解析;设置为DMY,则按照“日-月-年”解析;设置为YMD,则按照“年-月-日”解析。
日期的文本输入需要用单引号括起来,语法如下:
type [ ( p ) ] 'value'
可选精度p为整数,表示在秒域中小数部分的位数。下表列出date类型的输入方式。
表 日期输入
例子 | 描述 |
1999-01-08 | ISO 8601格式(建议格式),任何方式下都是1999年1月8号。 |
January 8, 1999 | 在任何datestyle输入模式下都无歧义。 |
1/8/1999 | 有歧义,在MDY模式下是一月八号,在DMY模式下是八月一号。 |
1/18/1999 | MDY模式下是一月十八日,其它模式下被拒绝。 |
01/02/03 | MDY模式下的2003年1月2日。 DMY模式下的2003年2月1日。 YMD模式下的2001年2月3日。 |
1999-Jan-08 | 任何模式下都是1月8日。 |
Jan-08-1999 | 任何模式下都是1月8日。 |
08-Jan-1999 | 任何模式下都是1月8日。 |
99-Jan-08 | YMD模式下是1月8日,否则错误。 |
08-Jan-99 | 一月八日,除了在YMD模式下是错误的之外。 |
Jan-08-99 | 一月八日,除了在YMD模式下是错误的之外。 |
19990108 | ISO 8601;任何模式下都是1999年1月8日。 |
990108 | ISO 8601;任何模式下都是1999年1月8日。 |
1999.008 | 年和年里的第几天。 |
J2451187 | 儒略日。 |
January 8, 99 BC | 公元前99年。 |
示例
--创建表。
gbase=# CREATE TABLE date_type_tab(coll date);
CREATE TABLE
--插入数据。
gbase=# INSERT INTO date_type_tab VALUES (date '5-10-2022');
INSERT 0 1
--查看数据。
gbase=# SELECT * FROM date_type_tab;
coll
---------------------
2022-05-10 00:00:00
(1 row)
--查看日期格式。
gbase=# SHOW datestyle;
DateStyle
-----------
ISO, MDY
(1 row)
--设置日期格式。
gbase=# SET datestyle='YMD';
SET
--插入数据。
gbase=# INSERT INTO date_type_tab VALUES(date '2022-5-11');
INSERT 0 1
--查看数据。
gbase=# SELECT * FROM date_type_tab;
coll
---------------------
2022-05-10 00:00:00
2022-05-11 00:00:00
(2 rows)
--删除表。
gbase=# DROP TABLE date_type_tab;
DROP TABLE




