функция mysql now () - PullRequest
       3

функция mysql now ()

2 голосов
/ 06 января 2012

Как SQL это сделать:

$now = date('Y-m-d H:i:s', time())
SELECT * FROM table WHERE '$now' > time

Это:

SELECT * FROM table WHERE now() > time

Ответы [ 2 ]

9 голосов
/ 06 января 2012

Ваш второй пример - это правильный чистый метод SQL для этого.

SELECT * FROM table WHERE NOW() > `time`

Хотя я считаю более читабельным их поменять местами, так как кажется логичнее думать, значение time - это раньше `. Это действительно не имеет значения и основано на на мое предпочтение.

SELECT * FROM table WHERE `time` < NOW()

Есть много других встроенных функций даты MySQL, которые вы можете использовать в своих запросах, , описанных в документации MySQL.

Например, для сравнения с 5 минут назад используйте DATE_SUB()

SELECT * FROM table WHERE `time` < DATE_SUB(NOW(), INTERVAL 5 MINUTE)
0 голосов
/ 06 января 2012

Я не понимаю вопроса - первый пример - это вычисление даты в соответствии с вашим php-сервером, второй - встроенная функция сервера mysql. Существенный эффект тот же.

И если вы когда-либо рассматривали, функция now () в mysql является детерминированной (она будет правильно реплицироваться на подчиненные устройства), поэтому даже в среде master-slave оба фрагмента кода не имеют различий, если бэкенд php и сервер sql имеют синхронизированные часы.

просто чтобы уточнить: конечно, если ваш php-сервер и часы mysql не синхронизированы, между обоими фрагментами кода будут различия, но в обычной среде это не должно происходить, по крайней мере, не имеет значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...