GBase 8c
适配迁移
文章
GBase8c日期/时间类型
发表于2026-01-06 10:56:0125次浏览2个评论
GBase8c 支持标准的 SQL 日期和时间数据类型,包括 :ml-search-more[DATE]{text="DATE"}**‌、‌**TIME、:ml-search-more[TIMESTAMP]{text="TIMESTAMP"}**‌ 和 ‌**INTERVAL,这些类型用于存储日期、时间或两者组合的数据,并允许指定精度以控制秒域中小数点后的位数。12
GBase8c 支持的日期/时间类型及其特性如下:
- DATE:仅存储日期部分,不包含时间。存储空间为 4 字节,取值范围从 4713 BC 到 5874897 AD,精度为 1 日。
- TIME [p] [WITHOUT TIME ZONE]:存储一天中的时间(无时区),存储空间为 8 字节,取值范围从 00:00:00 到 24:00:00,精度默认为 1 微秒(14 位)。
- TIME [p] WITH TIME ZONE:存储带时区的时间,存储空间为 12 字节,取值范围从 00:00:00+1459 到 24:00:00-1459,精度为 1 微秒。
- TIMESTAMP [p] [WITHOUT TIME ZONE]:存储日期和时间(无时区),存储空间为 8 字节,取值范围从 4713 BC 到 294276 AD,精度为 1 微秒。
- TIMESTAMP [p] WITH TIME ZONE:存储带时区的日期和时间,存储空间为 8 字节,取值范围与无时区版本相同,精度为 1 微秒。
- INTERVAL [fields] [p]:表示时间间隔,存储空间为 16 字节,取值范围从 -178000000年 到 178000000年,精度为 1 微秒。
其中,p为可选精度参数,范围从 0 到 6,用于控制秒域的小数位数;所有类型均支持标准输入格式(如 ISO-8601),并可通过:ml-search-more[DateStyle]{text="DateStyle"}参数调整解析顺序(如 MDY、DMY 或 YMD)。23
在使用日期/时间类型时,需注意以下事项:
- 精度与存储:精度
p仅影响秒域的小数位数,不改变存储空间;例如TIMESTAMP(3)表示毫秒级精度。 - 时区处理:带时区的类型(如
TIMESTAMP WITH TIME ZONE)会存储时区信息,而无时区类型则忽略时区。 - 操作符与函数:使用日期/时间操作符(如加减)时,需明确指定类型前缀(如
DATE '2022-01-01'),以避免解析错误;内置函数(如:ml-search-more[current_date]{text="current_date"}、:ml-search-more[extract]{text="extract"})可用于日期计算和提取。 - 特殊值与兼容性:GBase8c 支持日期/时间类型的特殊值(如
infinity),并在读取时转换为普通值;其日期类型与 Oracle 的DATE类型兼容,但行为可能不同,例如:ml-search-more[add_months]{text="add_months"}函数的处理逻辑。
评论
登录后才可以发表评论
GBase用户47954发表于 5个月前
感谢作者的精彩分享!
崔哥发表于 4个月前
古木阴中系短篷,杖藜扶我过桥东。沾衣欲湿杏花雨,吹面不寒杨柳风。
热门帖子
- 12025-12-01浏览数:182764
- 22023-05-09浏览数:25062
- 42023-09-25浏览数:18526
- 52020-05-11浏览数:17529