mysql从最后一个选定条目开始15分钟

xmjla07d  于 2021-06-24  发布在  Mysql
关注(0)|答案(3)|浏览(372)

尝试仅从表中选择距离上次选择的条目大于或等于15分钟的条目。我试过下面的方法,但只有15分钟的时间。例如09:00,09:15,09:30等等。。。

SELECT * FROM table  WHERE  MINUTE(column) % 15 = 0;

列是datetime。
查找select条目是否为09:02,则下一个条目将为09:17或更高。但如果后面的条目是13:33,它会选择后面的条目,该条目将高于或等于13:48。
谢谢
问题更新:(2018年10月4日3:15中部)
我有一个表,表中有一个带有datetime列的条目列表。我希望在特定的用户/帐户上选择和计算datetime列相隔15分钟或更长时间的行。因此,如果用户/帐户1在2018-01-06 04:47:11、2018-01-06 04:47:59、2018-01-06 04:49:112018-01-06 04:50:01、2018-01-06 04:55:08、2018-01-06 05:00:11、2018-01-06 05:02:00、2018-01-07 04:47:12和2018-01-07 05:05:11上有条目,则它应仅返回计数3。

ejk8hzay

ejk8hzay1#

混合溶液
我可以建议你计算最后15分钟并将其存储在一个变量中吗?

$minusfifteen = date('Y-m-d H:i:s', time()-900);
$query = "SELECT * FROM table  WHERE  column >= $minusfifteen";

如果是的话,一定要改变我用来匹配你的日期时间格式。
sql解决方案
纯mysql解决方案:

SELECT * FROM table WHERE column >= DATE_SUB((SELECT MAX(column) FROM table), INTERVAL 15 MINUTE)
0lvr5msh

0lvr5msh2#

问题更新:(2018年10月4日下午6:24中部)
这将返回结果,我正在寻找,但想一个mysql(非混合解决方案)

$checkTime = 0; // just to start
$count= 0;
$data = array();
$sql = "SELECT  * FROM table WHERE user='10' ORDER BY DateTimeColumn ";
$result = mysqli_query($db1,$sql);
while($rowData = mysqli_fetch_array($result)) {
    if(strtotime($rowData['DateTimeColumn']) >= $checkTime) { // is it 15 or more minutes later
        $checkTime = strtotime($rowData['DateTimeColumn']) + 900; // add 15 minutes
        $count++;
        array_push($data, $rowData);
    }
}
luaexgnf

luaexgnf3#

您可以使用该查询:

SELECT * FROM table WHERE TIMESTAMPDIFF(MINUTE, column, last_entry_time) >= 15;

前提是建立查询以便 last_entry_time 是你所说的“最后一个条目”的日期时间

相关问题