查找过去24小时内包含时间字段的记录

时间:2012-03-31 07:58:33

标签: mysql sql

在我的SQL查询中,如何在过去24小时内找到记录? 我正在使用time()函数插入db。 我正在使用时间戳,时间以这种格式存储.Eg 1332673046

5 个答案:

答案 0 :(得分: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 :(得分:1)

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

答案 2 :(得分:1)

我不确定您是想在同一日历日内查看,还是在过去24小时内查看,所以这就是我通常对这两种情况所做的事情:

a)在同一日历日:

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

b)日期是否在过去24小时内(包括在内)

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

答案 3 :(得分:1)

简单的DATE算法可以,

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

答案 4 :(得分: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()

您可能需要考虑以MySQL DATETIME格式存储日期,因为这样可以更轻松地在MySQL中进行日期计算。