UTC
» timedatectl status | grep "Time zone"
Time zone: Etc/UTC (UTC, +0000)
В конфиге
<timezone>UTC</timezone>
SELECT
toDateTime('2016-06-15 23:00:00', 'Asia/Yekaterinburg') AS time,
toDateTime(time) AS date_local,
toDateTime(time, 'Asia/Yekaterinburg') AS date_yekat,
toString(date_yekat, 'US/Samoa') AS time_samoa
Результат:
time = 2016-06-15 23:00:00
date_local = 2016-06-15 23:00:00
date_yekat = 2016-06-15 23:00:00
time_samoa = 2016-06-15 07:00:00
Вопрос: почему date_local такая же как и time? По идее, time должен быть в UTC, т.е. 18:00
clickhouse-client --use_client_time_zone=0 проверяйте используя toString( ) иначе клиент конвертит. toDateTime('2016-06-15 23:00:00', 'Asia/Yekaterinburg') AS time, toDateTime(time) AS date_local, DateTime(time, 'Asia/Yekaterinburg') эти три поля это '2016-06-15 23:00:00', в зоне UTC, т.е. тут и должно возращатся 2016-06-15 23:00:00 вы не догоняете что clickhouse-client конвертит вам в UTC ------------ SELECT toString(toDateTime('2016-06-15 23:00:00'), 'Asia/Yekaterinburg') 2016-06-16 04:00:00 -------------- toDateTime('2016-06-15 23:00:00', 'Asia/Yekaterinburg') AS time '2016-06-15 23:00:00' -- время в UTC уже с типом DateTime toDateTime('2016-06-15 23:00:00', 'Asia/Yekaterinburg') -- переводит в 'Asia/Yekaterinburg' в DateTime, и сразу назад в UTC
Обсуждают сегодня