Подсчет строк, где отметка времени меньше 24 часов - PullRequest
23 голосов
/ 27 декабря 2010

Для запроса ниже, как я могу посчитать количество строк, где datesent меньше 24 часов?(Поле datesent является отметкой времени).

Заранее спасибо,

Джон

  $message = "SELECT datesent, recipient
               FROM privatemessage 
              WHERE recipient = '$u'";


  $messager = mysql_query($message);

$messagearray = array(); 

Ответы [ 4 ]

56 голосов
/ 27 декабря 2010

Использование:

SELECT COUNT(*) AS cnt
  FROM PRIVATEMESSAGE pm
 WHERE pm.datesent >= DATE_SUB(NOW(), INTERVAL 1 DAY)
6 голосов
/ 27 декабря 2010

Вы можете использовать функцию DATE_SUB . Вычтите один день из текущей даты в предложении where.

Что-то вроде

DATE_SUB(NOW(), INTERVAL 1 DAY)

РЕДАКТИРОВАТЬ: изменено CURTIME () на СЕЙЧАС ()

3 голосов
/ 27 декабря 2010
$message="select count(1)
from privatemessage
where datesent>=date_sub(now(), 24 hours)
and recipient='$u'"

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-add

1 голос
/ 18 мая 2017

Я вижу, что это старое, хотя для любого, кто попадает сюда через онлайн-поиск позже, я хотел бы уточнить, что вопрос касается метки времени, а не даты.Мне нужно было рассчитывать на основе отметки времени.Простое решение - преобразовать дату и время в unix_timestamp.Протестировано на MySQL 5.7

SELECT COUNT(*) AS cnt
FROM PRIVATEMESSAGE pm
WHERE pm.datesent >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...