Clickhouse触发BUG了?关于DateTime类型的问题

 

Clickhouse触发BUG了?关于DateTime类型的问题

 

版本:

dev-app76 :) select version();

SELECT version()

Query id: bd6d8b6d-28f8-42e3-b7f3-21d33e3e2bf8

┌─version()─┐
│ 22.3.2.1  │
└───────────┘

1 rows in set. Elapsed: 0.003 sec. 

 

 

时区是正确的。

但是“1970-01-01 00:00:00”这个时间一直显示为“1970-01-01 08:00:00”。

尝试了几个值,只要是“1970-01-01 00:00:00-1970-01-01 08:00:00”都显示为“1970-01-01 08:00:00”。

(听开发的说也有insert之后变为2106-02-07 06:28:15)

作为对比,DateTime64这个类型就没问题。

dev-app76 :) select timezone();

SELECT timezone()

Query id: 3fa5f3f5-c208-46b2-9105-e3051ee9949f

┌─timezone()────┐
│ Asia/Shanghai │
└───────────────┘

1 rows in set. Elapsed: 0.003 sec. 

dev-app76 :) select cast('1970-01-01 00:00:00','DateTime') as time,cast('1970-01-01 10:00:00','DateTime64'),toDateTime(time,'Asia/Shanghai'),timezoneOf(time);

SELECT
    CAST('1970-01-01 00:00:00', 'DateTime') AS time,
    CAST('1970-01-01 10:00:00', 'DateTime64'),
    toDateTime(time, 'Asia/Shanghai'),
    timezoneOf(time)

Query id: 24fb71ec-7b96-4a5e-9da9-b5a1b97b2282

┌────────────────time─┬─CAST('1970-01-01 10:00:00', 'DateTime64')─┬─toDateTime(CAST('1970-01-01 00:00:00', 'DateTime'), 'Asia/Shanghai')─┬─timezoneOf(CAST('1970-01-01 00:00:00', 'DateTime'))─┐
│ 1970-01-01 08:00:001970-01-01 10:00:00.0001970-01-01 08:00:00 │ Asia/Shanghai                                       │
└─────────────────────┴───────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────┴─────────────────────────────────────────────────────┘

1 rows in set. Elapsed: 0.003 sec. 

 

 

其他:

select timezone();
select toTypeName(toDateTime('1970-01-01 00:00:00'));
select toTypeName('1970-01-01 00:00:00');
SELECT timezoneOf(now());

 

 

参考链接:

clickhouse处理时间日期函数概述

Datetime

Datetime64

timezone

 

posted @ 2022-10-20 17:10  PiscesCanon  阅读(1664)  评论(0编辑  收藏  举报