日期/时间类型

    表 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

    示例: