PHP MySQL - Сравнить дату и время - PullRequest
9 голосов
/ 18 декабря 2010

В моей таблице MySql есть поле даты и времени, в котором дата и время записываются в следующем формате:

2010-12-17 18: 06: 59

Я бы хотелвыберите записи с датой и временем за последние 15 минут.Как мне сконструировать мой запрос для этого?

Я пробовал следующее, но это не работает:

// check in last 15 minutes
$time_duration = (15 * 60);

"SELECT COUNT(CounterId) AS Count FROM visitors_counter WHERE TimeStamp > NOW() - $time_duration"

Спасибо!

Ответы [ 2 ]

11 голосов
/ 18 декабря 2010

Вы можете просто сделать все это в MySQL:

SELECT COUNT(CounterId) AS Count 
FROM visitors_counter
WHERE TimeStamp > (NOW() - INTERVAL 15 MINUTE)
3 голосов
/ 18 декабря 2010

Вы должны вычесть интервал:

SELECT COUNT(*) AS Count
FROM visitors_counter
WHERE TimeStamp > NOW() - INTERVAL 15 MINUTE;

Я заменил COUNT (CounterId) на COUNT (*), потому что последний работает быстрее, если CounterId не может быть нулевым. Если это возможно, просто замените * на CounterId.

P.S. Я не считаю метку времени хорошим именем столбца, потому что это ключевое слово. Конечно, он работает правильно, но может быть «лучше» заменить его чем-то другим.

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