если у меня есть DateTime поле f1, и я хочу фильтровать по нему. можно либо сделать f1 > '2023-09-01', либо f1 > toDateTime('2023-09-01')?
в первом случае может не сработать потому что '2023-09-01' это не DateTime это Date но вроде это в старых версиях было... в новых 21.3+ все ок
то есть в производительности разницы нет?
нет константа один раз преобразуется к типу и пойдет сравнение ...
в производительности, маловероятно можете посмотреть explain но можно словить разницу в результатах, если у вас на сервере и в колонке f1 разные таймзоны как показала практика, за счет неявной конверсии f1 > '2023-09-01', это то же самое, что f1 > toDateTime('2023-09-01', 'таймзона колонки') а вот f1 > toDateTime('2023-09-01') — это уже toDateTime('2023-09-01', 'таймзона сервера')
+1 отличное уточнение. я про это забыл
Обсуждают сегодня