в формате '2022-03-28 00:00:00.00000'. Строка попадает с фильтра superseta, где я пока не нашел возможности ее править. Может есть в настройках возможность парсить такой формат?
select parseDateTime64BestEffortOrNull('2022-03-28 00:00:00.00000', 3, 'UTC')
Согласен, но проблема в том, что этот запрос прилетает из superset и править дату в нем я не могу. Можно ли как то в настройках clickhouse заставить ее парсить дату в этом формате?
Если сразу не можете менять в запросе на вставку, то сложите сначала во временную таблицу как строку, а потом уже из нее инсерт с преобразованием
только я почему-то не могу воспроизвести вашу ситуацию. у меня есть DateTime64 поле в таблице, но в датасете Superset получается тип DATETIME и все миллисекунды автоматически отбрасываются. у вас какой тип данных для колонки в датасете?
там просто datetime. попробовать изменить на datetime64?
в исходной таблице clickhouse, к которой обращается superset
посмотрите, что в датасете для этой таблицы
В датасете Nullable(Datetime)
на вкладке COLUMNS датасета в Superset в колонке Data type прямо написано "Nullable(Datetime)"? там же всегда были типы формата STRING, DATETIME, UINT64.
раскройте инфу по колонке, что там в DATETIME FORMAT?
я сделал запрос напрямую в CH и он такой формат даты видеть не желает. Стоит убрать хвост .000000 и все работает, но по уомолчанию CH не хочет парсить эту строку. А superset не хочет передавать другой формат даты
У вас вместо пробела *
это понятно. вопрос в том, почему Superset генерит такую строку (я вопроизвести это не могу, может, отдельный загон какой-то версии) попробуйте сделать calculated column в датасете, которая обернет эту колонку в CAST to Nullable(DateTime). как вариант, поможет понять, эта ситуация возникает при чтении данных для датасета или уже внутри самого датасета при назначении типов
Иван, большое спасибо. Когда я добавил к вычисляемой колонке в свойствах datetime format все заработало! И superset стал делать адекватные запросы
то есть теоретически можно обойтись без дополнительной колонки, а просто указать нужный datetime format для оригинальной?🤔
Да, вы правы. Я принудительно указал формат даты для колонки и все работает) Спасибо за правильную наводку!)
а какая у вас версия Superset? интересно, нас эта ситуация еще ждет или мы ее уже проскочили )
Обсуждают сегодня