clickhouse21.7.11.3 数据类型-日期时间类型 Date、Datetime、Datetime64

Date

Date 不包含具体的时间信息,只精确到天,支持字符串形式写入。

范围:1970-01-01 - 2149-12-31

存储日期值时不带时区

例子

创建表:

CREATE TABLE dt
(
    `timestamp` Date,
    `event_id` UInt8
)
ENGINE = TinyLog;

插入数据:

INSERT INTO dt Values (1546300800, 1), ('2019-01-01', 2);
SELECT * FROM dt;

执行结果:

┌──timestamp─┬─event_id─┐
│ 2019-01-01 │        1 │
│ 2019-01-01 │        2 │
└────────────┴──────────┘

Datetime

范围 [1970-01-01 00:00:00, 2105-12-31 23:59:59] 可以配合时区使用。

精确到秒,支持用字符串形式插入。

语法:

DateTime([timezone])

例子

创建表:

CREATE TABLE dt
(
    `timestamp` DateTime('Europe/London'),
    `event_id` UInt8
)
ENGINE = TinyLog;

插入数据,支持时间戳、字符串:

INSERT INTO dt Values ('2019-01-01 00:15:30', 2);

查询:

SELECT * FROM dt;

结果:

┌───────────timestamp─┬─event_id─┐
│ 2019-01-01 08:15:30 │        2 │
└─────────────────────┴──────────┘

解释: 插入字符串类型的日期时,认为是该时区的,不做额外处理

默认取系统时区

不指定时区,默认取系统时区

CREATE TABLE dt2
(
    `timestamp` DateTime(),
    `event_id` UInt8
)
ENGINE = TinyLog;

指定上海时区

CREATE TABLE dt4
(
    `timestamp` DateTime('Asia/Shanghai'),
    `event_id` UInt8
)
ENGINE = TinyLog;

时区转换

SELECT
toDateTime(timestamp, 'Europe/London') as lon_time,
toDateTime(timestamp, 'Europe/Moscow') as mos_time
FROM dt

执行结果:

┌───────────lon_time──┬────────────mos_time─┐
│ 2019-01-01 00:00:00 │ 2019-01-01 03:00:00 │
│ 2018-12-31 21:00:00 │ 2019-01-01 00:00:00 │
└─────────────────────┴─────────────────────┘

Datetime64

可以记录亚秒,在Datetime上增加了精度的设置。

支持的范围从 1925 年 1 月 1 日到 2283 年 12 月 31 日

语法

DateTime64(precision, [timezone])

例子

创建表:

CREATE TABLE dt
(
    `timestamp` DateTime64(3, 'Europe/Moscow'),
    `event_id` UInt8
)
ENGINE = TinyLog;

插入数据:

INSERT INTO dt Values ('2019-01-01 00:00:00', 2);
SELECT * FROM dt;

查询结果:

┌───────────────timestamp─┬─event_id─┐
│ 2019-01-01 00:00:00.000 │        2 │
└─────────────────────────┴──────────┘

对值进行筛选DateTime64

SELECT * FROM dt WHERE timestamp = toDateTime64('2019-01-01 00:00:00', 3, 'Europe/Moscow');

查询结果:

┌───────────────timestamp─┬─event_id─┐
│ 2019-01-01 00:00:00.000 │        2 │
└─────────────────────────┴──────────┘

感谢:
https://blog.csdn.net/vkingnew/article/details/106644698


原文出处:/show_1IX3Nr3WBtMi.html