DATE、DATETIME 和 TIMESTAMP 类型是相关的。本节主要介绍它们的特征、相似之处以及不同之处。
DATE
DATE 类型用于表示具有日期部分但没有时间部分的值。
DATE 值的检索和显示格式为 'YYYY-MM-DD',范围是 '0000-00-00' 到 '9999-12-31'。
OceanBase 数据库允许使用字符串或数字将值分配给 DATE 列。
语法如下:
DATE
DATETIME
DATETIME 类型用于表示同时包含日期和时间部分的值。
DATETIME 值的检索和显示格式为 'YYYY-MM-DD hh:mm:ss',范围是 '0000-00-00 00:00:00' 到 '9999-12-31 23:59:59'。
语法如下:
DATETIME[(fsp)]
可选 fsp 值用来指定小数位秒的精度,范围为 [0,6]。0 值表示没有小数部分。如果省略,则默认精度为 0。
DATETIME 列通过使用 DEFAULT 和 ON UPDATE 子句指定当前日期和时间的自动初始化和更新。
DATETIME 值可以包含秒的小数位部分,精度最高可达微秒(6 位),格式为 'YYYY-MM-DD hh:mm:ss[.fraction]',范围为 '0000-00-00 00:00:00.000000' 到 '9999-12-31 23:59:59.999999'。小数部分应始终与其他时间位用小数点分隔,不识别其他分隔符。
TIMESTAMP
TIMESTAMP 数据类型用于表示同时包含日期和时间部分的值。
语法如下:
TIMESTAMP[(fsp)]
可选 fsp 值来指定小数位秒的精度,范围为 [0,6]。0 值表示没有小数部分。如果省略,则默认精度为 0。
示例如下:
CREATE TABLE t(C1 TIMESTAMP(6));
TIMESTAMP 列可以使用 DEFAULT CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP 子句指定当前日期和时间的自动初始化和更新。默认情况下,第一个 TIMESTAMP 列具有这些属性,也可以定义表中的其他 TIMESTAMP 列具有这些属性。
TIMESTAMP 值可以包括秒的小数位部分,精度最高可达微秒(6 位),格式为 'YYYY-MM-DD hh:mm:ss[.fraction]',范围是 '0000-00-00 00:00:00.000000' 到 '9999-12-31 23:59:59.999999'。小数部分应始终与其他时间位用小数点分隔,不识别其他分隔符。
OceanBase 数据库将 TIMESTAMP 值从当前时区转换为 UTC 进行存储,然后从 UTC 转换回当前时区以进行检索。默认情况下,每个连接的当前时区遵从服务器的时间,但也可以更改每个连接的时区。如果没有使用相同的时区进行双向转换,则更改时区后检索到的值可能与存储值不同。只要时区设置保持不变,就可以检索到存储的值。当前时区可用作 time_zone 系统变量的值。




