Heim > Datenbank > MySQL-Tutorial > Wie wähle ich Daten zwischen zwei Daten in MySQL richtig aus?

Wie wähle ich Daten zwischen zwei Daten in MySQL richtig aus?

Patricia Arquette
Freigeben: 2024-11-20 12:48:13
Original
601 Leute haben es durchsucht

How to Properly Select Data Between Two Dates in MySQL?

Auswählen von Daten aus einer MySQL-Datenbank zwischen zwei Datumsangaben

In MySQL stellt das Abrufen von Daten innerhalb eines bestimmten Datumsbereichs eine häufige Herausforderung beim Speichern von Datumsangaben dar als Datum/Uhrzeit-Werte. Die Verwendung der Operatoren >= und <= führt aufgrund der Standardinterpretation von Mitternacht als Beginn eines Datums möglicherweise nicht immer zu den gewünschten Ergebnissen.

Stellen Sie sich das Szenario vor, in dem Sie Datensätze auswählen möchten, in denen die Spalte „created_at“ liegt zwischen „01.12.2011“ und „06.12.2011“. Das Ausführen der folgenden Abfrage schließt überraschenderweise den erwarteten Datensatz aus, der am 06.12.2011 um 10:45:36 Uhr aufgetreten ist:

SELECT `users`.* FROM `users` 
WHERE created_at >= '2011-12-01' 
AND created_at <= '2011-12-06'
Nach dem Login kopieren

Der Grund dafür ist, dass MySQL das Enddatum als Mitternacht interpretiert ('2011- 12-06 00:00:00'), wobei Datensätze, die später an diesem Tag erstellt wurden, effektiv ausgeschlossen sind. Um den gewünschten Datensatz auszuwählen, ändern Sie das Enddatum in „2011-12-07“:

SELECT `users`.* FROM `users` 
WHERE created_at >= '2011-12-01' 
AND created_at <= '2011-12-07'
Nach dem Login kopieren

Alternativ können Sie DATE_ADD() verwenden, um Tage zum Startdatum hinzuzufügen und so ein Intervall zu erstellen, das das gewünschte Ende enthält Datum:

SELECT `users`.* FROM `users` 
WHERE created_at >= '2011-12-01' 
AND created_at <= DATE_ADD('2011-12-01', INTERVAL 7 DAY)</p>
<p>Für eine bessere Lesbarkeit kann der BETWEEN-Operator verwendet werden:</p>
<pre class="brush:php;toolbar:false">SELECT `users`.* FROM `users` 
WHERE created_at BETWEEN('2011-12-01', DATE_ADD('2011-12-01', INTERVAL 7 DAY))
Nach dem Login kopieren

Durch Anpassen des Enddatums oder Verwenden der Funktion DATE_ADD() können Sie Daten genau auswählen den angegebenen Datumsbereich, um sicherzustellen, dass alle am vorgesehenen Enddatum erstellten Datensätze erfasst werden.

Das obige ist der detaillierte Inhalt vonWie wähle ich Daten zwischen zwei Daten in MySQL richtig aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage