日期/时间类型
表 1 日期/时间类型
示例:
日期和时间的输入几乎可以是任何合理的格式,包括ISO-8601格式、SQL-兼容格式、传统POSTGRES格式或者其它的形式。系统支持按照日、月、年的顺序自定义日期输入。如果把DateStyle参数设置为MDY就按照“月-日-年”解析,设置为DMY就按照“日-月-年”解析,设置为YMD就按照“年-月-日”解析。
日期的文本输入需要加单引号包围,语法如下:
type [ ( p ) ] ‘value’
可选的精度声明中的p是一个整数,表示在秒域中小数部分的位数。表2显示了date类型的输入方式。
表 2 日期输入方式
例子
|
描述
|
1999-01-08
|
ISO 8601格式(建议格式),任何方式下都是1999年1月8号。
|
January 8, 1999
|
在任何datestyle输入模式下都无歧义。
|
1/8/1999
|
有歧义,在MDY模式下是一月八号,在DMY模式下是八月一号。
|
1/18/1999
|
MDY模式下是一月十八日,其它模式下被拒绝。
|
|
- 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年。
|
示例:
时间类型包括time [ (p) ] without time zone和time [ (p) ] with time zone。如果只写time等效于time without time zone。
如果在time without time zone类型的输入中声明了时区,则会忽略这个时区。
时间输入类型的详细信息请参见表3,时区输入类型的详细信息请参加。
表 3 时间输入
表 4 时区输入
例子
|
描述
|
PST
|
太平洋标准时间(Pacific Standard Time)
|
America/New_York
|
完整时区名称
|
|
ISO 8601与PST的偏移
|
-800
|
ISO 8601与PST的偏移
|
-8
|
ISO 8601与PST的偏移
|
示例:
openGauss支持几个特殊值,在读取的时候将被转换成普通的日期/时间值,请参考表5。
表 5 特殊值
reltime的输入方式可以采用任何合法的时间段文本格式,包括数字形式(含负数和小数)及时间形式,其中时间形式的输入支持SQL标准格式、ISO-8601格式、POSTGRES格式等。另外,文本输入需要加单引号。
时间段输入的详细信息请参考表6。
表 6 时间段输入
输入示例
|
输出结果
|
描述
|
60
|
2 mons
|
采用数字表示时间段,默认单位是day,可以是小数或负数。特别的,负数时间段,在语义上,可以理解为“早于多久”。
|
31.25
|
1 mons 1 days 06:00:00
|
-365
|
-12 mons -5 days
|
1 years 1 mons 8 days 12:00:00
|
1 years 1 mons 8 days 12:00:00
|
采用POSTGRES格式表示时间段,可以正负混用,不区分大小写,输出结果为将输入时间段计算并转换得到的简化POSTGRES格式时间段。
|
-13 months -10 hours
|
-1 years -25 days -04:00:00
|
-2 YEARS +5 MONTHS 10 DAYS
|
-1 years -6 mons -25 days -06:00:00
|
P-1.1Y10M
|
-3 mons -5 days -06:00:00
|
采用ISO-8601格式表示时间段,可以正负混用,不区分大小写,输出结果为将输入时间段计算并转换得到的简化POSTGRES格式时间段。
|
-12H
|
|
示例: