Как использовать CONVERT_TZ и AS?

Хочу сравнивать конвертированную дату с промежутком.

SELECT event, CONVERT_TZ(time, '+00:00', '-04:00') AS time1 FROM events 
WHERE time1 between '2021-06-24 00:00:00' AND '2021-06-24 23:59:59' AND lang = 'ru'
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
@Akina
Сетевой и системный админ, SQL-программист.
Алиас выходного поля нельзя использовать во WHERE.

Правильно - использовать копию вычисляющего значения выражения:
SELECT event, 
       CONVERT_TZ(time, '+00:00', '-04:00') AS time1 
FROM events 
WHERE CONVERT_TZ(time, '+00:00', '-04:00') between '2021-06-24 00:00:00' AND '2021-06-24 23:59:59' 
  AND lang = 'ru'

Расширение MySQL также допускает использовать алиас выходного поля в HAVING (при условии что в выражении не используются оконные функции):
SELECT event, 
       CONVERT_TZ(time, '+00:00', '-04:00') AS time1 
FROM events 
WHERE lang = 'ru'
HAVING time1 between '2021-06-24 00:00:00' AND '2021-06-24 23:59:59'
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы