2012-03-31 2 views
1

В моем SQL-запросе, как найти записи за последние 24 часа? Я использую функцию time() для вставки в db. Я использую временную метку время хранится в этом format.Eg 1332673046Поиск записей с полем времени за последние 24 часа

+0

Возможный дубликат [MySQL: записи вставляются по часам за последние 24 часа] (http://stackoverflow.com/questions/2783740/mysql-records-inserted-by-hour-for-the-last-24 -часов) – bernie

+0

Включена ли запись в столбце timestamp/datetime? –

+0

@Shiplu да я использую timestamp. –

ответ

1
select somefield from yourtable where timefield >= subtime(current_timestamp(), '1 00:00:00'); 
+0

не работает, когда я запускаю в mysql, он говорит: «MySQL возвращает пустой набор результатов (то есть нулевые строки)». –

+0

нулевые строки не являются ошибкой. Это просто означает, что нет строк, соответствующих условию. Это происходит, если все строки старше 24 часов или если таблица пуста. –

+0

, но проблема в том, что у меня есть строки, введенные за 30 минут до этого? –

1

Вы можете использовать BETWEEN

SELECT * FROM users 
WHERE created_at BETWEEN '2012-03-31 00:00:00 UTC' AND '2012-03-31 23:59:59 UTC' 
1

Я не уверен, если вы хотите проверить в пределах одного календарного дня , или, как вы говорите, в течение последних 24 часов, так вот что я обычно делаю для обоих случаев:

а) за тот же календарный день:

CONVERT(VARCHAR(8), myTable.myDate, 112) = CONVERT(VARCHAR(8), GETDATE(), 112) 

б) На дату, чтобы быть в течение последних 24 часов (включительно)

DATEDIFF(hour, myTable.myDate, GETDATE()) <= 24 
1

Простой DATE арифметика будет делать,

SELECT * 
FROM `table1` 
WHERE `time_col` BETWEEN NOW() AND NOW()- INTERVAL 24 HOURS; 
0

Учитывая, что вы хранения дат в Unix метки времени, то вам нужно UNIX_TIMESTAMP как этот

SELECT 
    // fields you need 
FROM `table` 
WHERE 
    `date_field` BETWEEN UNIX_TIMESTAMP(DATE_SUB(NOW() INTERVAL 24 HOUR)) AND UNIX_TIMESTAMP() 

Вы можете рассмотреть вопрос хранения дат в MySQLs формате DATETIME поскольку он делает расчеты даты в MySQL намного проще.

Смежные вопросы