Ответ 1
Использование:
SELECT COUNT(*) AS cnt
FROM PRIVATEMESSAGE pm
WHERE pm.datesent >= DATE_SUB(NOW(), INTERVAL 1 DAY)
Для запроса ниже, как я могу подсчитать количество строк, где datesent
меньше 24 часов? (Поле datesent
является меткой времени).
Спасибо заранее,
Джон
$message = "SELECT datesent, recipient
FROM privatemessage
WHERE recipient = '$u'";
$messager = mysql_query($message);
$messagearray = array();
Использование:
SELECT COUNT(*) AS cnt
FROM PRIVATEMESSAGE pm
WHERE pm.datesent >= DATE_SUB(NOW(), INTERVAL 1 DAY)
Вы можете использовать функцию DATE_SUB. Вычтите один день с текущей даты в предложении where.
Что-то вроде
DATE_SUB(NOW(), INTERVAL 1 DAY)
EDIT: изменено CURTIME() на NOW()
$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
Я вижу, что это старый, хотя для любого, кто попадает сюда через онлайн-поиск позже, я хотел бы пояснить, что вопрос касается временной метки, а не даты и времени. Мне нужен счет, основанный на отметке времени. Простое исправление - преобразовать дату и время в unix_timestamp. Протестировано на MySQL 5.7
SELECT COUNT(*) AS cnt
FROM PRIVATEMESSAGE pm
WHERE pm.datesent >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY))