基本的mysql问题 - 如何按时间搜索?

时间:2009-10-03 21:42:50

标签: mysql

我有一个mysql表,其中插入一个名为'timecreated'的列,其值为NOW()。

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

这不起作用:

SELECT * 来自mytable 在哪里timecreated> '(现在() - 60)' ORDER BY id DESC 限制0,30

2 个答案:

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

你可以:

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

获取时间创建的所有行>现在 - 1小时

或者你可以

SELECT * from mytable where timecreated > '2009-10-03 08:39:00')

如果您想要从特定时间开始。