日期/时间类型
日期时间数据类型为 date
、 timestamp[ ( p ) ] [ without time zone ]
、 timestamp[ ( p ) ] with time zone
、 timestamp[ ( p ) ] with local time zone
、 time [ ( p ) ] [ without time zone ]
、 time [ ( p ) ] with time zone
、 time
、 year
。
间隔数据类型为 interval [field] [to] [field] [(fp)]
、 yminterval [field][(lp)] [to] [field]
、 dsinterval [field][(lp)] [to] [field] [(fp)]
。
注意
其中 yminterval
和 dsinterval
只在Oracle模式下可用,兼容Oracle的Interval类型。
interval
类型各模式下都可用。
year
只在MySQL模式下可用,兼容MySQL的year类型。
名字 | 存储尺寸 | 描述 | 最小值 | 最大值 | 解析度 |
---|---|---|---|---|---|
| 8字节 | 包括日期和时间(无时区) | 4713 BC | 294276 AD | 1微秒 |
| 8字节 | 包括日期和时间,有时区 | 4713 BC | 294276 AD | 1微秒 |
| 8字节 | 包括日期和时间,有时区 | 4713 BC | 294276 AD | 1微秒 |
| 4字节 | 日期(没有一天中的时间) | 4713 BC | 5874897 AD | 1日 |
| 8字节 | 一天中的时间(无日期) | 00:00:00 | 24:00:00 | 1微秒 |
| 12字节 | 仅仅是一天中的时间(没有日期),带有时区 | 00:00:00+1459 | 24:00:00-1459 | 1微秒 |
| 16字节 | 时间间隔 | -178956970年 | 178956970年 | 1微秒 |
| 16字节 | 时间间隔 | -178956970年 | 178956970年 | 1月 |
| 16字节 | 时间间隔 | -999999999日 | 999999999日 | 1纳秒 |
| 4字节 | 年份 | 1901年 | 2155年 |
日期时间的输入格式,包括 ISO 8601、SQL-兼容的、传统 KingbaseES的和其他的形式。对于一些格式,日期输入里的日、月和年的顺序会让人混淆,支持指定所预期的这些域的顺序。把 DateStyle 参数设置为 MDY,表示"月-日-年",设置为 DMY 就是"日-月-年",设置为 YMD,表示"年-月-日"。
KingbaseES 在处理日期/时间输入输出上比SQL标准更灵活。
KingbaseES 有四个STRING类型的参数,设置日期/时间输入输出格式。
STRING类型的参数 | 默认格式 |
---|---|
NLS_DATE_FORMAT | YYYY-MM-DD HH24:MI:SS |
ORA_DATE_STYLE | YYYY-MM-DD HH24:MI:SS |
NLS_TIMESTAMP_FORMAT | YYYY-MM-DD HH24:mi:ss.FF |
NLS_TIMESTAMP_TZ_FORMAT | YYYY-MM-DD HH24:mi:ss.FF TZH:TZM |
说明:这四个参数需在 Oracle 模式下,且参数 ORA_STYLE_NLS_DATE_FORMAT 处于打开的情况下生效。