跳到主要内容

DATE、DATETIME 和 TIMESTAMP 类型

DATEDATETIMETIMESTAMP 类型是相关的。本节主要介绍它们的特征、相似之处以及不同之处。

DATE

DATE 类型用于表示具有日期部分但没有时间部分的值。

DATE 值的检索和显示格式为 'YYYY-MM-DD',范围是 '0000-00-00' 到 '9999-12-31'。

seekdb 允许使用字符串或数字将值分配给 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 列通过使用 DEFAULTON 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_TIMESTAMPON 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'。小数部分应始终与其他时间位用小数点分隔,不识别其他分隔符。

seekdb 将 TIMESTAMP 值从当前时区转换为 UTC 进行存储,然后从 UTC 转换回当前时区以进行检索。默认情况下,每个连接的当前时区遵从服务器的时间,但也可以更改每个连接的时区。如果没有使用相同的时区进行双向转换,则更改时区后检索到的值可能与存储值不同。只要时区设置保持不变,就可以检索到存储的值。当前时区可用作 time_zone 系统变量的值。