Php-MySql-Abfrage , Auswahl der Daten Nach DateTime
Ich würde gerne die Anzahl der Zeilen mit gleichem Datum. Aber ein zweites muss vernachlässigbar sein.
Beispiel: 2012-01-03 13:12:28 2012-01-03 13:12:27 sollte wahrgenommen werden als die gleichen.
( Ich habe eine Tabelle name ist myTable
und die datetime-Spalte-name ist date
)
Ich hoffe, Sie werden mir helfen..
InformationsquelleAutor iremce | 2012-01-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist so einfach wie:
Wenn Sie möchten, bauen Sie es aus einer variable, Sie könnten dies tun:
BEARBEITEN: Wie pro Ihren Kommentar unten, wird die folgende SQL zurückgeben sollte, was Sie nach. Beachten Sie, dass wenn ein Datum enthält, '2012-01-03 13:12:28" es wird gezählt :27 :28.
InformationsquelleAutor cmbuckley
Für solche Fälle verwenden wir die self-join einer Tabelle mit Aliasen...und wie Ihr Zustand ist der Unterschied zwischen den Terminen sollte nicht mehr als 1 hier geht es...
Ich davon aus, dass Sie gespeicherte Datum als mysql-datetime... " - " Betrieb..
InformationsquelleAutor Rajat Singhal
Versuchen Sie einmal dieses:
Oder für eine Gruppe-Verwandte ZÄHLEN:
WHERE DATE('2012-01-03 01:01:01') = DATE(my_date)
für jede Zeile, die ist auf 2012 01 03.Schön @kontur, ich habe gerade versucht, auf meinem lokalen-und es funktionierte. Das ist eine brauchbare alternative für meine erste Abfrage.
Sie können auch gerne
WHERE DATE(NOW()) = myDate
zu überprüfen, zum Beispiel, für heute, oder mit DATE_ADD, für x Tage von heute - einfach auf nebenbei ,)InformationsquelleAutor Aaron
Wenn Sie nur brauchen, um count Anzahl der Zeilen, die pro Datum, es wäre eine einfache GROUP BY:
Aber durch Ihre Frage, die Sie nicht nur brauchen, um count Zeilen in ein Datum, aber auch zählen, nicht nur einzelne Ereignisse, aber es ist Serie. In diesem Fall müssen Sie definieren, was genau Serie sind. Sagen zwei Ereignisse, die innerhalb einer Sekunde gezählt werden sollte als ein. Was, wenn es vier Veranstaltungen mit 0,7 Abstand zwischen einander? In diesem Fall würde ich vorschlagen, zu zählen-Serie in zwei Schritten.
First - order-events by-Zeit:
Dann auf Seiten der Anwendung können Sie zählen die Kluft zwischen zwei Platten und erhöhen den Zähler, wenn die Entfernung zwischen zwei Ereignissen mehr als eine Sekunde.
Vergessen Sie nicht, hinzufügen von index auf
date
Feld, um die Geschwindigkeit dieser Abfrage.InformationsquelleAutor vfedorkov