ошибка. не могу с ней справиться. Следующие два запроса выполняются без проблем.
(Значения столбцов timestamp и ad_network_timestamp отличаются на пару секунд)
select ad_network_timestamp from db.table
where timestamp < '2022-02-03 19:15:00';
select ad_network_timestamp from db.table
where timestamp > '2022-02-13 22:26:00';
Но если пытаюсь вернуть все значения, или значения из этого среза дат, то он ругается: "Cannot parse datetime: Cannot parse DateTime from String: while executing 'FUNCTION CAST(ad_network_timestamp :: 0, 'DateTime' :: 1) -> cast(ad_network_timestamp, 'DateTime') DateTime : 2': "
Как отловить значение String в столбце с типом DateTime? Или в целом как привести в порядок столбец?
with array('1','2021-01-01',NULL) as t select toDateOrDefault(arrayJoin(t));
не получается. ему по ходу дела приходят и DateTime и String и он не может справиться. ну и в моей версии нет toDateOrDefault
А к DateTime64 пробовали привести?
неа. попробую чуть позже
Ещё можно регуляркой отловить невалидные даты, предварительно приведя их к String, например where not match(timestamp, '\d{4}\-\d{2}\-\d{2}.*')
Обсуждают сегодня