Clickhouse 的时区问题

问题描述 投票:0回答:1

在我的 ClickHouse 数据库中执行以下查询时:

SELECT formatDateTime(now(), '%Y-%m-%d %H:%M:%S', 'Asia/Tehran'); 

我收到了意想不到的结果:

2024-03-29 00:34:35

但是,预期输出是:

2024-03-29 23:34:35

将 ClickHouse 中的时区设置为亚洲/德黑兰时,所有日期时间值都会调整为 UTC+04:30,而不是预期的 UTC+03:30。您能否提供有关如何解决此问题的指导?

timezone clickhouse clickhouse-client
1个回答
0
投票

伊朗曾经遵守夏令时,但于2023年被废除

Asia/Tehran
时区的相应更改已应用于 IANA TZ 数据,版本 2022b

如果您在 2023 年或之后看到

+04:30
偏移,则您正在运行的系统没有更新的时区数据,因此需要更新。

如何更新时区数据取决于您如何安装ClickHouse。例如,如果您只是在自己的 Linux 计算机上运行他们的“快速安装”,那么您将运行

apt-get -y tzdata
。但是,如果您使用的是 Docker 映像,则可能需要更新 dockerfile 以包含该命令,如此处所示

一般最佳实践是始终保持时区数据最新。否则,您将应用以前的规则而不是当前的规则,从而给出可能不正确的结果(如您所描述的)。

© www.soinside.com 2019 - 2024. All rights reserved.