DATE类型存储年月日信息。

语法

DATE的常量值可以使用解释文本( interpreted literal)表示,或者使用类型DATE注释的字符串文本或强制类型DATE来表示。

日期的字符串格式为YYYY-MM-DD。 例如:DATE '2016-12-23'

CockroachDB还支持在预期DATE值的上下文中使用未解释的字符串文本(uninterpreted string literals)。

大小

DATE列支持最大宽度为8个字节的值,但由于CockroachDB元数据因素,总存储大小可能会更大。

示例

> CREATE TABLE dates (a DATE PRIMARY KEY, b INT);

> SHOW COLUMNS FROM dates;
+-------+------+-------+---------+
| Field | Type | Null  | Default |
+-------+------+-------+---------+
| a     | DATE | false | NULL    |
| b     | INT  | true  | NULL    |
+-------+------+-------+---------+
> -- explicitly typed DATE literal
> INSERT INTO dates VALUES (DATE '2016-03-26', 12345);

> -- string literal implicitly typed as DATE
> INSERT INTO dates VALUES ('2016-03-27', 12345);

> SELECT * FROM dates;
+---------------------------+-------+
|             a             |   b   |
+---------------------------+-------+
| 2016-03-26 00:00:00+00:00 | 12345 |
| 2016-03-27 00:00:00+00:00 | 12345 |
+---------------------------+-------+

支持的转换

DATE值可以强制转换为以下任何数据类型:

Type Details
INT 转换为Unix时间至今的天数(1970年1月1日)
DECIMAL 转换为Unix时间至今的天数(1970年1月1日)
FLOAT 转换为Unix时间至今的天数(1970年1月1日)
TIMESTAMP 在结果时间戳中将时间设置为00:00(午夜)
STRING ––

由于SERIAL数据类型表示由CockroachDB自动生成的值以唯一标识行,因此无法将其他数据类型有意义地转换为SERIAL

See Also

Data Types