toHour和date_trunc函数在clickhouse中不能准确工作



我想根据的定义将时间字段拆分为小时前和小时后部分

date_trunc我使用的是这个代码:

date_trunc('hour', time_field)

输入:2022-07-31 20:00:23.000
输出:2022-07-21 19:30:00.000

为什么此代码将20:00:23.000更改为19:30:00.000

我的第二个问题是关于toHour。我使用以下代码:

toHour(time_field)

输入:‍ ‍‍‍‍2‍022-07-31 19:30:00.000‍‍输出:0应该是19,为什么是0?

当我使用时:

formatDateTime(time_field, '%Y-%m-%d-%H')

输入:2015-10-18 21:40:13.000输出:2015-10-19-01

这些函数是怎么回事?我需要把时间转换成另一个时区吗?

感谢我的队友,这个问题终于解决了!我将与有此问题的人分享答案。我使用CCD_ 7。所以,这是客户端的问题,我必须在dbeaver中设置use_server_time_zone以使其正确


请参阅https://github.com/ClickHouse/clickhouse-jdbc/issues/604.

最新更新