2009-10-03 35 views
0

我有一个mysql表,其中有一个名为'timecreated'的列,当它被插入时,其值为NOW()。基本的mysql问题 - 如何按时间搜索?

如何编写一个MYSQL语句来获取从过去一分钟插入的行?

这不是工作:

SELECT * FROM mytable WHERE timecreated> '(NOW() - 60)' ORDER BY ID DESC LIMIT 0,30

+0

请发表您的表格架构 – 2009-10-03 21:45:33

回答

4

使用DATE_SUB()

SELECT * FROM mytable 
WHERE timecreated > DATE_SUB(NOW(), INTERVAL 1 MINUTE) 
ORDER BY id DESC LIMIT 0 , 30 

或者您可以像表达式那样做:

SELECT * FROM mytable 
WHERE timecreated > NOW() - INTERVAL 60 SECOND 
ORDER BY id DESC LIMIT 0 , 30 
1

您可以:

SELECT * from mytable where timecreated > SUBTIME(NOW() , '01:00:00') 

让所有的行,其中timecreated现在> - 2小时

,或者你可以

SELECT * from mytable where timecreated > '2009-10-03 08:39:00') 
如果你从一个特定的时间要