So wählen Sie Zeilen mit dem Zeitstempel des aktuellen Tages aus
In Datenbankverwaltungssystemen ist es üblich, Zeitstempel für Datensätze zu speichern, um zu verfolgen, wann sie waren erstellt oder geändert. Wenn Sie jedoch Daten aus einer Tabelle mit Zeitstempeln abrufen müssen, kann es bei der Auswahl von Datensätzen basierend auf bestimmten Daten zu Problemen kommen.
Problemstellung
Sie haben eine Datenbank Tabelle mit einer Zeitstempelspalte und Sie möchten nur Datensätze abrufen, die am aktuellen Tag erstellt wurden. Sie haben ursprünglich die folgende Abfrage verwendet, aber festgestellt, dass sie Datensätze für die letzten 24 Stunden und nicht nur das heutige Datum zurückgibt:
SELECT * FROM `table` WHERE (`timestamp` > DATE_SUB(now(), INTERVAL 1 DAY));
Lösung
Zum Auswählen von Zeilen mit Um den Zeitstempel des aktuellen Tages zu ermitteln und dabei die Zeit zu ignorieren, können Sie die folgende Abfrage verwenden:
SELECT * FROM `table` WHERE DATE(`timestamp`) = CURDATE()
Warnung:
Obwohl diese Abfrage Ihr beabsichtigtes Ergebnis erzielt, funktioniert sie möglicherweise nicht optimal. Die Verwendung von DATE() für eine Zeitstempelspalte kann MySQL daran hindern, Indizes für diese Spalte effizient zu verwenden.
Für eine effizientere Lösung können Sie eine dedizierte Datumsspalte erstellen und den Datumsteil des Zeitstempels in dieser Spalte speichern . Dadurch kann MySQL einen Index für die Datumsspalte verwenden, um die Abfrage zu beschleunigen.
Hier ist ein Beispiel dafür, wie Sie eine dedizierte Datumsspalte erstellen und ihre Werte aktualisieren können:
ALTER TABLE `table` ADD COLUMN `date` DATE NOT NULL; UPDATE `table` SET `date` = DATE(`timestamp`);
Das obige ist der detaillierte Inhalt vonWie rufe ich Datensätze mit dem heutigen Zeitstempel in MySQL ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!