GaussDB数据库支持的日期、时间类型

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

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

名称
描述
存储空间

DATE

日期。

最小值:公元前4713年,4713-01-01BC。最大值:公元5874897年,5874897-12-31AD。


说明:

ORA兼容性下,数据库将空字符串作为NULL处理,数据类型DATE会被替换为TIMESTAMP(0) WITHOUT TIME ZONE。

4字节(实际存储空间大小为8字节)

TIME [(p)] [WITHOUT TIME ZONE]

只用于一日内时间。

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

最小值:00:00:00。最大值:24:00:00。

8字节

TIME [(p)] [WITH TIME ZONE]

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

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

最小值:00:00:00+1559。最大值:24:00:00。

12字节

TIMESTAMP[(p)] [WITHOUT TIME ZONE]

日期和时间。

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

最小值:公元前4713年,4713-11-24BC 00:00:00.000000。最大值:公元294277年,294277-01-09AD 00:00:00.000000。

8字节

TIMESTAMP[(p)][WITH TIME ZONE]

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

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

最小值:公元前4713年,4713-11-24BC 00:00:00.000000。最大值:公元294277年,294277-01-09AD 00:00:00.000000。

8字节

SMALLDATETIME

日期和时间,不带时区。

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

最小值:公元前4713年,4713-11-24BC 00:00:00.000000。最大值:公元294277年,294277-01-09AD 00:00:00.000000。

8字节

INTERVAL DAY (l) TO SECOND (p)

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

  1. l:天数的精度,取值范围为0~6。为适配Oracle语法,未实现具体功能。
  2. p:秒数的精度,取值范围为0~6。小数末尾的零不显示。

16字节

INTERVAL [FIELDS] [ (p) ]

时间间隔。

  1. 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。
  2. 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。

  1. 采用儒略历计时,规定一年为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字节

说明

1. 时间类型的数据在显示的时候会自动忽略末尾的所有零。

2. 精度p默认取值为6。

3. 对于INTERVAL类型,日期和时间在系统内部分别用int32和double类型存储,所以两者的取值范围和对应数据类型的取值范围一致。

4. 插入时间超出范围的时候,系统可能不报错,但不保证行为正常。

/

GaussDB数据库常见问题解答

GaussDB数据库常见问题解答

GaussDB优质文章锦集