Подтвердить что ты не робот

Подсчет строк, где метка времени меньше 24 часов

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

Спасибо заранее,

Джон

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


  $messager = mysql_query($message);

$messagearray = array(); 
4b9b3361

Ответ 1

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

SELECT COUNT(*) AS cnt
  FROM PRIVATEMESSAGE pm
 WHERE pm.datesent >= DATE_SUB(NOW(), INTERVAL 1 DAY)

Ответ 2

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

Что-то вроде

DATE_SUB(NOW(), INTERVAL 1 DAY)

EDIT: изменено CURTIME() на NOW()

Ответ 4

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

SELECT COUNT(*) AS cnt
FROM PRIVATEMESSAGE pm
WHERE pm.datesent >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY))