日期/时间类型
AntDB 支持 SQL 中所有的日期和时间类型,如表 5.9 所示。日期根据公历来计算,即使对于该历法被引入之前的年份也一样。
日期/时间类型
| 名字 | 存储尺寸 | 描述 | 最小值 | 最大值 | 解析度 |
|---|---|---|---|---|---|
timestamp [ (*p*) ] [ without time zone ] | 8 字节 | 包括日期和时间(无时区) | 4713 BC | 294276 AD | 1 微秒 |
timestamp [ (*p*) ] with 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 微秒 |
interval [ *fields* ] [ (*p*) ] | 16 字节 | 时间间隔 | -178000000年 | 178000000年 | 1 微秒 |
注意
SQL 要求只写 timestamp 等效于 timestamp without time zone,并且 AntDB 鼓励这种行为。timestamptz 被接受为 timestamp with time zone 的一种简写,这是一种 AntDB 的扩展。
time、timestamp 和 interval 接受一个可选的精度值 p,这个精度值声明在秒域中小数点之后保留的位数。缺省情况下,在精度上没有明确的边界。p 允许的范围是从 0 到 6。
interval 类型有一个附加选项,它可以通过写下面之一的短语来限制存储的 fields 的集合:
YEAR
MONTH
DAY
HOUR
MINUTE
SECOND
YEAR TO MONTH
DAY TO HOUR
DAY TO MINUTE
DAY TO SECOND
HOUR TO MINUTE
HOUR TO SECOND
MINUTE TO SECOND
注意如果 fields 和 p 被指定,fields 必须包括 SECOND,因为精度只应用于秒。
类型 time with time zone 是 SQL 标准定义的,但是该定义显示出了一些会影响可用性的性质。在大多数情况下, date、time、timestamp without time zone和 timestamp with time zone 的组合就应该能提供任何应用所需的全范围的日期/时间功能。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




