Heim >Datenbank >MySQL-Tutorial >Wie extrahiere ich Daten effizient aus DateTime-Spalten in MySQL?

Wie extrahiere ich Daten effizient aus DateTime-Spalten in MySQL?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-02 17:33:10763Durchsuche

How to Efficiently Extract Dates from DateTime Columns in MySQL?

Effiziente Auswahl von Datumsangaben aus Datetime-Spalten

Bei der Arbeit mit Datetime-Datentypen kann es häufig erforderlich sein, bestimmte Komponenten wie Datumsangaben oder Uhrzeiten zu extrahieren. Dieser Artikel befasst sich mit der Herausforderung beim Abrufen von Datumsangaben aus Datetime-Spalten in MySQL.

Das Problem

Eine häufige Abfrage besteht darin, Zeilen basierend auf einem bestimmten Datum zu filtern, wie im folgenden Beispiel:

SELECT * FROM data
WHERE datetime = '2009-10-20'
ORDER BY datetime DESC;

Die bereitgestellte Lösung besteht jedoch darin, eine BETWEEN-Klausel zu verwenden, um einen Datumsbereich vom 20.10.2009 zu definieren 00:00:00' bis '2009-10-20 23:59:59' gibt einen leeren Ergebnissatz zurück.

Die Lösung

Um Datumsangaben effektiv zu extrahieren, stellt MySQL die Funktion DATE() zur Verfügung. Funktion, die die Datumskomponente eines Datums-/Uhrzeitwerts zurückgibt. Die Verwendung von DATE() in der WHERE-Klausel ermöglicht einen direkten Vergleich mit einem Datumsliteral:

SELECT * FROM data
WHERE DATE(datetime) = '2009-10-20'
ORDER BY datetime DESC;

Ein alternativer Ansatz, der manchmal die Leistung verbessern kann, ist die Verwendung des LIKE-Operators mit einem Platzhaltersuffix:

SELECT * FROM data
WHERE datetime LIKE '2009-10-20%'

Es ist jedoch wichtig zu beachten, dass LIKE-Vergleiche Auswirkungen auf die Leistung haben können, wie in anderen Stack Exchange-Threads besprochen.

Das obige ist der detaillierte Inhalt vonWie extrahiere ich Daten effizient aus DateTime-Spalten in MySQL?. 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