PHP MySQL选择最后n分钟内的日期时间值为值的行

时间:2018-08-01 02:19:31

标签: php mysql datetime select range

我有一个看起来像这样的MySQL表:

Timestamp           | Content
-----------------------------------------
2018-10-28 12:59:47 | "Some string"
2018-10-29 04:13:48 | "Some other string"

Timestamp列为datetime类型。正在使用PHP date()函数创建要插入到列中的值。例如,date("Y-m-d H:i:s")

我想使用PHP选择时间戳记值在最近n分钟内的所有行。

我知道如何选择日期为特定值的所有行。例如,以下将选择时间戳与当前日期/时间匹配的所有行:

mysqli_query($link, "SELECT * FROM tablename WHERE Timestamp = '" . date("Y-m-d H:i:s") . "'");

我将如何查询以选择时间戳记值在最后一个(即49分钟)之内的所有行?

1 个答案:

答案 0 :(得分:2)

使用此查询(当MySQL内置有日期功能时,无需涉及PHP日期功能。有关更多信息,请参见DATE_SUB()

SELECT *
FROM tablename
WHERE Timestamp > DATE_SUB(NOW(), INTERVAL 49 MINUTE)