mysql - 我应该如何查询才能获取我的记录?

标签 mysql sql

我有一张表,用于记录汽车进入 parking 场的时间,我需要获得接近半小时的记录。 例如我得到了

id, time date
1, 10:01 2016-05-30
2, 10:15 2016-05-30
3, 10,29 2016-05-30
4, 10:31 2016-05-30
5, 10:45 2016-05-30
6, 11:00 2016-05-30
7, 11:11 2016-05-30
8, 11:15 2016-05-30

所以就我而言,我将获得记录:3,6 和 8

现在我正在使用类似的东西:

.....
SELECT id, MAX(fecha) AS fecha, DATE_FORMAT(MAX(m.fecha), '%H:%i:%s') AS hora
FROM estacionamientos 
WHERE (DATE_FORMAT(fecha, '%H:%i:%s') BETWEEN '15:30:00' AND '16:00:00')
AND (DATE_FORMAT(fecha, '%Y-%m-%d') = '2016-05-30')
UNION
SELECT id, MAX(fecha) AS fecha, DATE_FORMAT(MAX(m.fecha), '%H:%i:%s') AS hora
FROM estacionamientos 
WHERE (DATE_FORMAT(fecha, '%H:%i:%s') BETWEEN '16:00:01' AND '16:30:00')
AND (DATE_FORMAT(fecha, '%Y-%m-%d') = '2016-05-30')
.....
ORDER BY hora DESC

但是还有比创建 48 个工会更好的方法吗?

最佳答案

好的,我找到了一种方法,将其与 unix_timestamp 分组:

SELECT id, fecha, DATE_FORMAT(fecha, '%H:%i:%s') AS hora
FROM estacionamientos 
WHERE (DATE_FORMAT(fecha, '%H:%i:%s') BETWEEN '00:00:00' AND '23:59:59')
AND (DATE_FORMAT(fecha, '%Y-%m-%d') = '2016-05-30')
GROUP BY 
UNIX_TIMESTAMP(fecha) DIV 1800
ORDER BY fecha DESC

希望这对将来的任何人都有帮助。

关于mysql - 我应该如何查询才能获取我的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37598910/

相关文章:

mysql - [MySQL]如何对选择子句中具有特定分组的行进行计数

sql - @@IDENTITY、SCOPE_IDENTITY()、OUTPUT 和其他检索最后身份的方法

sql - OVER ORDER BY 中的多个列

mysql - 如何使用外键创建数据库

php - 使用 Jquery 定位 PHP 输出的元素

sql - 查找日期列的最小值和最大值

java - 从数据库中的列中的唯一值创建链接列表 android sqlite

sql - SQL Server 中的 Stuff 和 'For Xml Path' 是如何工作的?

mysql - 如何将 varchar 转换为 datetime,不起作用

mysql - 使用NodeJS和MySQL无法通过id获取数据