В MySQL я пытаюсь выбрать строки из таблицы с lock_dt
старше 10 часов. Как я могу написать эту инструкцию sql правильно?MYSQL - как получить разницу во времени?
select phone from table where ((now() - lock_dt) < 10 hours)
В MySQL я пытаюсь выбрать строки из таблицы с lock_dt
старше 10 часов. Как я могу написать эту инструкцию sql правильно?MYSQL - как получить разницу во времени?
select phone from table where ((now() - lock_dt) < 10 hours)
SELECT phone
FROM table
WHERE lock_dt > NOW() - INTERVAL 10 HOUR
Использование интервалов довольно удобно. Кроме того, я пытаюсь изолировать столбец, чтобы можно было использовать возможный индекс (иногда СУРБД не знают, как использовать индекс с помощью NOW() - lock_dt, даже если есть указатель на lock_dt).
Кроме того, описание проблемы не соответствует вашему запросу. NOW() - lock_dt < 10 hours
означает интервал нет чем 10 часов. Это мой запрос. Вы должны изменить> <, если вы хотите больше чем 10 часов.
SELECT phone FROM table WHERE lock_dt < DATE_SUB(now(), interval 10 hour);