Heim  >  Artikel  >  Datenbank  >  Wie rufe ich Datensätze mit dem heutigen Zeitstempel in MySQL ab?

Wie rufe ich Datensätze mit dem heutigen Zeitstempel in MySQL ab?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-13 09:20:02793Durchsuche

How to Retrieve Records with Today's Timestamp in MySQL?

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()
  • The Die Funktion DATE() gibt den Datumsteil eines Zeitstempels zurück und entfernt die Zeitinformationen.
  • Die Funktion CURDATE() gibt das aktuelle Datum als MySQL-Datumswert zurück.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn