So wählen Sie Zeilen mit Zeitstempeln nur vom heutigen Tag aus
In einer relationalen Datenbank kann die Auswahl von Zeilen mit bestimmten Zeitstempeln für die Datenanalyse wichtig sein Berichterstattung. Ein häufiges Szenario besteht darin, Datensätze vom aktuellen Tag ohne Zeitkomponente abzurufen.
Der aktuelle Ansatz und seine Einschränkungen
Die bereitgestellte Abfrage SELECT * FROM table WHERE (Zeitstempel > DATE_SUB(now(), INTERVAL 1 DAY));, ruft Ergebnisse innerhalb der letzten 24 Stunden ab. Dies liegt daran, dass mithilfe von DATE_SUB ein Tag von der aktuellen Zeit subtrahiert wird, was alle Zeitstempel des vorherigen Tages umfasst.
Verwendung von DATE und CURDATE() für Präzision
Zu Wählen Sie Ergebnisse ausschließlich basierend auf dem Datum aus und ignorieren Sie die Zeitkomponente. Dies kann die folgende Abfrage sein verwendet:
SELECT * FROM `table` WHERE DATE(`timestamp`) = CURDATE();
Hier extrahiert DATE() nur den Datumsteil des Zeitstempels und CURDATE() gibt das aktuelle Datum zurück. Durch den Vergleich dieser Werte filtert die Abfrage effektiv Zeitstempel heraus, die nicht von heute stammen.
Effiziente Indexnutzung
Es ist wichtig zu beachten, dass die obige Abfrage möglicherweise keine Indizes verwendet effizient. Erwägen Sie stattdessen die Verwendung dieser alternativen Abfrage:
SELECT * FROM `table` WHERE `timestamp` >= DATE(NOW()) AND `timestamp` < DATE(NOW()) + INTERVAL 1 DAY;
Diese Abfrage verwendet einen Index für die Zeitstempelspalte, was eine gängige Optimierungstechnik in SQL ist.
Das obige ist der detaillierte Inhalt vonWie rufe ich Zeilen mit Zeitstempeln nur vom heutigen Tag in SQL ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!