在我的SQL查询中,如何查找过去24小时内的记录? 我正在使用time()函数插入数据库。 我使用时间戳的时间存储在该format.Eg 1332673046在过去24小时内查找带有时间字段的记录
回答
select somefield from yourtable where timefield >= subtime(current_timestamp(), '1 00:00:00');
当我在mysql中运行时它不工作,它说'MySQL返回了一个空的结果集(即零行)'。 – 2012-03-31 08:15:49
零行不是错误。这意味着,没有与条件匹配的行。如果所有行都超过24小时,或者表格为空,则会发生这种情况。 – 2012-03-31 08:19:09
但问题是我有30分钟前输入的行? – 2012-03-31 08:22:48
您可以使用BETWEEN
SELECT * FROM users
WHERE created_at BETWEEN '2012-03-31 00:00:00 UTC' AND '2012-03-31 23:59:59 UTC'
我不能肯定,如果你正在寻找同一日历天之内检查,或者你在过去的24小时内说,所以这里就是我通常是两种情况做:
一)同一日历天:
CONVERT(VARCHAR(8), myTable.myDate, 112) = CONVERT(VARCHAR(8), GETDATE(), 112)
b)对于日期为过去24小时(含)
DATEDIFF(hour, myTable.myDate, GETDATE()) <= 24
简单的日期算术会做内,
SELECT *
FROM `table1`
WHERE `time_col` BETWEEN NOW() AND NOW()- INTERVAL 24 HOURS;
既然你存储日期为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中的日期计算更容易。
- 1. 在过去24小时内查找带有日期字段的记录
- 2. MySQL:按小时插入记录,在过去24小时内
- 3. 时间戳字段输出最近24小时内的记录
- 4. mysql字段有十六进制时间,需要过去24小时内的所有记录
- 5. MySQL,Coldfusion,选择在过去24小时内加时间戳的记录
- 6. 在过去24小时内选择记录和日期
- 7. PHP MYSQL选择过去24小时内和过去24小时内的数据
- 8. 在过去的几个小时内查找记录T-SQL
- 9. 查找在过去一小时内生成的记录
- 10. 获取过去24小时内的记录
- 11. 的Python:在过去24小时内
- 12. 过去24小时
- 13. 过去24小时内导轨列表创建/更新记录
- 14. 脚本:查找过去24小时内的文件已更改
- 15. 查询从过去24小时内创建的数据库中选择记录
- 16. 使用python查找超过24小时的记录
- 17. 在过去的24小时查找(Find)mysql的变化
- 18. SQL查询查找在过去一小时内创建的记录(使用时代日期时间格式)
- 19. JFreeChart - TimeSeries过去24小时
- 20. Postgresql查询在过去24小时内查找排名最高的表格
- 21. 查找一段24小时(未尤其是最后24小时)
- 22. 通过过去24小时的时间戳过滤结果
- 23. 在24小时内查找最大值
- 24. 获取过去7天,过去24小时内的MySQL
- 25. SQL查询查找在过去30天内没有记录但在过去90天内有记录的用户
- 26. SELECT在过去24小时内最多查看
- 27. SQL查询 - 如何在过去24小时内显示点数?
- 28. 在过去24小时的订单数
- 29. 抓取iCloudKit记录超过24小时
- 30. 查找过去12小时的oracle记录
可能重复的[MySQL:记录插入小时,过去24小时](http://stackoverflow.com/questions/2783740/mysql-records-inserted-by-hour-for-the-last-24 -hours) – bernie 2012-03-31 08:02:58
记录是否包含任何时间戳记/日期时间列? – 2012-03-31 08:04:07
@Shiplu是的,我正在使用时间戳。 – 2012-03-31 08:09:50