Вы уверены, что это не займет 30 секунд для вас, чтобы запустить сценарий, а затем проверить время на сервере?
NOW() возвращает постоянное время, что указует время, в котором заявление начало выполнять.
Вам необходимо основывать свое сравнение на инициализации запроса, а не на завершении.
Если вам нужно время по вызову, используйте вместо него SYSDATE()
.
Если все это в порядке, и у вас все еще есть проблема, вы определенно используете только SELECT NOW()
? Если у вас есть дополнение к полю в вашем запросе где-то, это может быть фактически добавление к столбцу NOW()
вместо того, который вы считаете.
Если все это по-прежнему проверяется, я думаю, он мог бы заплатить за статью Server Timezone Support MySQL. Может быть, прыжки секунд игнорируются или что-то в этом роде.
Вы перезапустили сервер MySQL на случай, если время сервера было настроено с момента запуска сервера?
Запрос занимает 0,0004 сек, так что это не так, поскольку существует огромное расхождение между тем, когда запрос отправляется и когда он возвращается. Обратите внимание, что SYSDATE() также находится на расстоянии ~ 30 секунд от времени сервера. Редактировать: вызов в точности «ВЫБРАТЬ СЕЙЧАС()» –
@ Слайва, ладно, хорошо, вы попробовали перезапустить сервер mysql? –