openGauss SQL参考—数据类型:日期/时间类型(1)

日期/时间类型

openGauss支持的日期/时间类型请参见表1。该类型的操作符和内置函数请参见时间和日期处理函数和操作符。

 说明: 如果其他的数据库时间格式和openGauss的时间格式不一致,可通过修改配置参数DateStyle的值来保持一致。

表 1 日期/时间类型

名称

描述

存储空间

DATE

日期和时间。

4字节(兼容模式A下存储空间大小为8字节)

TIME [(p)] [WITHOUT TIME ZONE]

只用于一日内时间。

p表示小数点后的精度,取值范围为0~6。

8字节

TIME [(p)] [WITH TIME ZONE]

只用于一日内时间,带时区。

p表示小数点后的精度,取值范围为0~6。

12字节

TIMESTAMP[(p)] [WITHOUT TIME ZONE]

日期和时间。

p表示小数点后的精度,取值范围为0~6。

8字节

TIMESTAMP[(p)][WITH TIME ZONE]

日期和时间,带时区。TIMESTAMP的别名为TIMESTAMPTZ。

p表示小数点后的精度,取值范围为0~6。

8字节

SMALLDATETIME

日期和时间,不带时区。

精确到分钟,秒位大于等于30秒进一位。

8字节

INTERVAL DAY (l) TO SECOND (p)

时间间隔,X天X小时X分X秒。

  • l:天数的精度,取值范围为0~6。兼容性考虑,目前未实现具体功能。
  • p:秒数的精度,取值范围为0~6。小数末尾的零不显示。

16字节

INTERVAL [FIELDS] [ (p) ]

时间间隔。

  • fields:可以是YEAR、MONTH、DAY、HOUR、MINUTE、SECOND、DAY TO HOUR、DAY TO MINUTE、DAY TO SECOND、HOUR TO MINUTE、HOUR TO SECOND、MINUTE TO SECOND。
  • p:秒数的精度,取值范围为0~6,且fields为SECOND、DAY TO SECOND、HOUR TO SECOND或MINUTE TO SECOND时,参数p才有效。小数末尾的零不显示。

12字节

reltime

相对时间间隔。格式为:

X years X mons X days XX:XX:XX。

采用儒略历计时,规定一年为365.25天,一个月为30天,计算输入值对应的相对时间间隔,输出采用POSTGRES格式。

4字节

abstime

日期和时间。格式为:

YYYY-MM-DD hh:mm:ss+timezone

取值范围为1901-12-13 20:45:53 GMT~2038-01-18 23:59:59 GMT,精度为秒。

4字节

示例:

--创建表。
openGauss=# CREATE TABLE date_type_tab(coll date);

--插入数据。
openGauss=# INSERT INTO date_type_tab VALUES (date '12-10-2010');

--查看数据。
openGauss=# SELECT * FROM date_type_tab;
        coll         
---------------------
 2010-12-10 00:00:00
(1 row)

--删除表。
openGauss=# DROP TABLE date_type_tab;

--创建表。
openGauss=# CREATE TABLE time_type_tab (da time without time zone ,dai time with time zone,dfgh timestamp without time zone,dfga timestamp with time zone, vbg smalldatetime);

--插入数据。
openGauss=# INSERT INTO time_type_tab VALUES ('21:21:21','21:21:21 pst','2010-12-12','2013-12-11 pst','2003-04-12 04:05:06');

--查看数据。
openGauss=# SELECT * FROM time_type_tab;
    da    |     dai     |        dfgh         |          dfga          |         vbg         
----------+-------------+---------------------+------------------------+---------------------
 21:21:21 | 21:21:21-08 | 2010-12-12 00:00:00 | 2013-12-11 16:00:00+08 | 2003-04-12 04:05:00
(1 row)

--删除表。
openGauss=# DROP TABLE time_type_tab;

--创建表。
openGauss=# CREATE TABLE day_type_tab (a int,b INTERVAL DAY(3) TO SECOND (4)); 

--插入数据。
openGauss=# INSERT INTO day_type_tab VALUES (1, INTERVAL '3' DAY);

--查看数据。
openGauss=# SELECT * FROM day_type_tab;
 a |   b    
---+--------
 1 | 3 days
(1 row)

--删除表。
openGauss=# DROP TABLE day_type_tab;

--创建表。
openGauss=# CREATE TABLE year_type_tab(a int, b interval year (6));

--插入数据。
openGauss=# INSERT INTO year_type_tab VALUES(1,interval '2' year);

--查看数据。
openGauss=# SELECT * FROM year_type_tab;
 a |    b    
---+---------
 1 | 2 years
(1 row)

--删除表。
openGauss=# DROP TABLE year_type_tab;
posted @ 2024-07-30 10:15  openGauss-bot  阅读(172)  评论(0)    收藏  举报