在我的SQL查询中,如何在过去24小时内找到记录? 我正在使用time()函数插入db。 我正在使用时间戳,时间以这种格式存储.Eg 1332673046
答案 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中进行日期计算。