我有一张表,用于记录汽车进入 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/