暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8c 数据类型-日期/时间类型

菁菁 2022-07-22
699

GBase 8c支持的日期/时间类型请参见下表。

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


表  日期/时间类型

名称

描述

存储空间

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字节

示例

--创建表。

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=# DROP TABLE date_type_tab;

DROP TABLE

--创建表。

gbase=# 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);

CREATE TABLE

--插入数据。

gbase=# 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');

INSERT 0 1

--查看数据。

gbase=# 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)

--删除表。

gbase=# DROP TABLE time_type_tab;

DROP TABLE


--创建表。

gbase=# CREATE TABLE day_type_tab (a int,b INTERVAL DAY(3) TO SECOND (4));

CREATE TABLE

--插入数据。

gbase=# INSERT INTO day_type_tab VALUES (1, INTERVAL '3' DAY);

INSERT 0 1

--查看数据。

gbase=# SELECT * FROM day_type_tab;

a |   b

---+--------

 1 | 3 days

(1 row)

--删除表。

gbase=# DROP TABLE day_type_tab;

DROP TABLE


--创建表。

gbase=# CREATE TABLE year_type_tab(a int, b interval year (6));

CREATE TABLE

--插入数据。

gbase=# INSERT INTO year_type_tab VALUES(1,interval '2' year);

INSERT 0 1

--查看数据。

gbase=# SELECT * FROM year_type_tab;

 a | b

---+---------

1 | 2 years

(1 row) 

--删除表。

gbase=# DROP TABLE year_type_tab;

DROP TABLE

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论