Kingbase-数据类型4-日期/时间类型

5 日期 / 时间类型
KingbaseES 支持 SQL 中所有的日期和时间类型,如下表所示。这些数据类型上可用的操作如 时间 / 日期函数
和操作符 所述。日期根据公历来计算,即使对于该历法被引入之前的年份也一样。
7.5.1: 日期 / 时间类型
名字
存储
尺寸
描述
最小值
最大值
解析
timestamp[ (p )] [ without
time zone ]
8
包括日期和时间(无
时区)
4713 BC
294276 AD
1
timestamp[ (p ) ] with
time zone
8
包括日期和时间,有
时区
4713 BC
294276 AD
1
timestamp[ (p )] with lo
cal time zone
8
包括日期和时间,有
时区
4713 BC
294276 AD
1
date
4
日期(没有一天中的
时间)
4713 BC
5874897 AD
1
time [ (p ) ] [ without time
zone ]
8
一天中的时间(无日
期)
00:00:00
24:00:00
1
time [ (p ) ] with time zone
12
字节
仅仅是一天中的时
间(没有日期),带
有时区
00:00:00+1459
24:00:00-
1459
1
int erval [ fields ] [
( “p“ ) ]
16
字节
时间间隔
-178000000
178000000
1
Note: SQL 要求只写 timestamp 等效于 timestamp without time zone ,并且 KingbaseES 鼓励这
种行为。 timestamptz 被接受为 timestamp with time zone 的一种简写,这是一种 KingbaseES 的扩
展。
time timestamp interval 接受一个可选的精度值 “p“ ,这个精度值声明在秒域中小数点之后保留的
位数。缺省情况下,在精度上没有明确的边界。 “p“ 允许的范围是从 0 6
interval 类型有一个附加选项,它可以通过写下面之一的短语来限制存储的 fields 的集合:
YEAR
MONTH
DAY
HOUR
MINUTE
SECOND
YEAR TO MONTH
YEAR_MONTH
DAY TO HOUR
DAY_HOUR
DAY TO MINUTE
DAY_MINUTE
DAY TO SECOND
DAY_SECOND
HOUR TO MINUTE
HOUR_MINUTE
HOUR TO SECOND
HOUR_SECOND
MINUTE TO SECOND
MINUTE_SECOND
Note: YEAR_MONTH DAY_HOUR DAY_MINUTE DAY_SECOND HOUR_MINUTE HOUR_SECOND
MINUTE_SECOND 是兼容 mysql unit 类型,需要通过 mysql_interval_style 参数开启, set mysql_interval_style to
on
注意如果 “fields“ “p“ 被指定, “fields“ 必须包括 SECOND ,因为精度只应用于秒。
类型 time with time zone SQL 标准定义的,但是该定义显示出了一些会影响可用性的性质。在大
多数情况下, date time timestamp without time zone timestamp with time zone 的组
合就应该能提供任何应用所需的全范围的日期 / 时间功能。
5.1 日期 / 时间输入
日期和时间的输入可以接受几乎任何合理的格式,包括 ISO 8601 SQL- 兼容的、传统 KINGBASE 的和其他
的形式。对于一些格式,日期输入里的日、月和年的顺序会让人混淆,并且支持指定所预期的这些域的顺序。
DateStyle 参数设置为 MDY ,就是选择“月-日-年”的解释,设置为 DMY 就是“日-月-年”,而 YMD
是“年-月-日”。
KingbaseES 在 处 理 日 期 / 时 间 输 入 输 出 上 比 SQL 标 准 要 求 的 更 灵 活。 当 前 KingbaseES 存 在
四 个 STRING 类 型 的 参 数 NLS_DATE_FORMAT ORA_DATE_STYLE NLS_TIMESTAMP_FORMAT
NLS_TIMESTAMP_TZ_FORMAT ,默认值分别为 YYYY-MM-DD HH24:MI:SS YYYY-MM-DD HH24:MI:SS
YYYY-MM-DD HH24:mi:ss.FF YYYY-MM-DD HH24:mi:ss.FF TZH:TZM ,分别可由用户在一次连接中进行
指定 date date timestamp timestamptz 的格式。例如将 NLS_DATE_FORMAT 参数设置为 YYYY-MM-DD
格式后,查询时 date 类型将默认输出‘ 2021-08-01 ’、‘ 1985-12-28 ’等样式的字符串;输入时,将默认按
YYYY-MM-DD 格式解析,能正确解析‘ 2021-08-01 ’、‘ 1985-12-28 ’等样式字符串日期,而无法解析
08.01.2021 ’、‘ 12.28.1985 ’等样式字符串。 ORA_DATE_STYLE 定义 date NLS_TIMESTAMP_FORMAT
NLS_TIMESTAMP_TZ_FORMAT 分别定义 timestamp timestamptz 类型的格式,皆同 NLS_DATE_FORMAT
数类似,影响日期 / 时间的默认输入与输出格式,此处不再赘述。具体的日期 / 时间输入输出格式的定义请参考
据类型格式化函数 章节。注意: NLS_DATE_FORMAT ORA_DATE_STYLE NLS_TIMESTAMP_FORMAT
NLS_TIMESTAMP_TZ_FORMAT 参数需在 Oracle 模式下,且参数 ORA_STYLE_NLS_DATE_FORMAT 处于
打开的情况下生效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值