2016-06-02 6 views
0

Ich habe einen Tisch, an dem ich logge, wenn ein Auto einen Parkplatz betritt, und ich muss den Rekord fast eine halbe Stunde bekommen. Zum Beispiel habe ichWie soll meine Anfrage sein, damit ich meine Unterlagen bekommen kann?

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 

in meinem Fall also werde ich Aufzeichnungen erhalten: 3,6 und 8

Denn jetzt so etwas wie ich bin mit:

..... 
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 

Aber es ist ein besser als 48 Gewerkschaften zu schaffen?

Antwort

0

Ok, fand ich einen Weg, es zu tun, indem sie sie mit unix_timestamp Gruppierung:

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 

Hoffnung jemand dies in Zukunft hilft.

+0

Ist nicht (DATE_FORMAT (Fecha, '% H:% i:% s') ZWISCHEN '00: 00: 00 'UND '23: 59: 59') redundant? – tonypdmtr

Verwandte Themen