Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie wähle ich MySQL-Daten zwischen zwei Daten einschließlich der Uhrzeit richtig aus?

DDD
Freigeben: 2024-11-19 10:44:03
Original
424 Leute haben es durchsucht

How to Correctly Select MySQL Data Between Two Dates Including Time?

MySQL: Auswählen von Daten zwischen zwei Datumsangaben

In MySQL ist es bei der Arbeit mit Datums-/Uhrzeitfeldern wichtig, die Nuancen des Datums zu kennen Formatierung. Wie Sie festgestellt haben, kann die Verwendung des Datumsformats „2011-12-06 10:45:36“ ohne Berücksichtigung der Zeit zu unerwarteten Ergebnissen führen, wenn Sie versuchen, Daten zwischen bestimmten Datumsangaben abzurufen.

Die Mitternachtsfalle

Die standardmäßige Kurzversion von Datumsangaben in MySQL interpretiert 00:00:00 als Beginn eines Tages. Das bedeutet, dass Ihre Abfrage:

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

effektiv zu Folgendem wurde:

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

Als Ergebnis wurde der erwartete Artikel „2011-12-06 10:45:36“ angezeigt. , wurde ausgeschlossen, da seine Zeitkomponente außerhalb des angegebenen Bereichs lag.

Elegante Lösungen

Um dieses Problem zu beheben, haben Sie einige Möglichkeiten:

  • Enddatum verlängern:Ändern Sie die Abfrage so, dass sie den folgenden Tag einschließt, um den gesamten Bereich zu erfassen:
SELECT `users`.* FROM `users` 
WHERE created_at >= '2011-12-01' 
AND created_at <= '2011-12-07'
Nach dem Login kopieren
  • Verwenden Sie DATE_ADD:Verwenden Sie die DATE_ADD-Funktion, um ein Intervall zum Enddatum hinzuzufügen:
SELECT `users`.* from `users` 
WHERE created_at >= '2011-12-01' 
AND created_at <= date_add('2011-12-01', INTERVAL 7 DAY)
Nach dem Login kopieren
  • Verwenden Sie den BETWEEN-Operator: Dieser Operator bietet eine präzisere Möglichkeit zur Angabe der Datumsbereich:
SELECT `users`.* from `users` 
WHERE created_at BETWEEN('2011-12-01', date_add('2011-12-01', INTERVAL 7 DAY));
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie wähle ich MySQL-Daten zwischen zwei Daten einschließlich der Uhrzeit 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage