0

我希望能够检索在过去 4 分钟内插入到 mysql 表中的行。我有一个名为'when'的mysql datetime字段可能会有所帮助,我在插入点插入mysql时间,现在'NOW()'例如

$query = "INSERT INTO user_actions SET user='" . $user_id . "'" .
             ", action='" . $server_action . "'" .
             ", `when`=NOW()";

是否有一种优雅的方式来 SELECT * FROM user_actions WHERE ...(行的年龄小于 4 分钟并且 action = 'some value')如果不需要,请随意忽略“何时”。

问候,斯图尔特

4

3 回答 3

3
SELECT * FROM user_actions 
WHERE `when` >= addtime(now(), '-00:04:00')

或者

SELECT * FROM user_actions 
WHERE `when` >= now() - interval 4 minute
于 2012-07-02T10:54:54.270 回答
2

您可以使用 DATE_ADD,请参阅此处获取文档

例子:

SELECT * FROM `user_actions` WHERE `when` >= DATE_ADD( NOW(), INTERVAL -4 MINUTE )
于 2012-07-02T10:58:26.587 回答
0
SELECT * FROM user_actions 
WHERE `when` >= DATE_ADD(now(), INTERVAL -4 MINUTE)
and `action` ='someAction'
于 2012-07-02T11:37:30.313 回答