Heim > Datenbank > MySQL-Tutorial > Warum gibt meine SQLite-Abfrage trotz Verwendung einer BETWEEN-Klausel alle Datumsangaben zurück?

Warum gibt meine SQLite-Abfrage trotz Verwendung einer BETWEEN-Klausel alle Datumsangaben zurück?

Patricia Arquette
Freigeben: 2025-01-13 10:49:42
Original
475 Leute haben es durchsucht

Why Does My SQLite Query Return All Dates Despite Using a BETWEEN Clause?

Warum ignoriert die SQLite-Abfrage Datumsbereichsbedingungen?

Problembeschreibung:

Beim Abfragen von Datensätzen innerhalb eines bestimmten Datumsbereichs mithilfe einer SQLite-Datenbank enthalten die Ergebnisse alle Daten, auch Daten außerhalb des angegebenen Bereichs. Die verwendete Abfrageanweisung lautet wie folgt:

<code class="language-sql">SELECT * FROM test WHERE date BETWEEN "11/1/2011" AND "11/8/2011";</code>
Nach dem Login kopieren

Ursache des Problems:

Das Problem ist das Datumsformat. SQLite erfordert Datumsangaben im Format JJJJ-MM-TT (z. B. „2011-11-01“ bis „2011-11-08“). Das in der Abfrage bereitgestellte Datumsformat ist jedoch „MM/TT/JJJJ“.

Beim Ausführen einer Abfrage interpretiert SQLite Datumszeichenfolgen als Text statt als Datum. Daher ignoriert es die Datumsbedingung und ruft alle Zeilen in der „Test“-Tabelle ab, unabhängig vom tatsächlichen Datumswert.

Lösung:

Um dieses Problem zu beheben, konvertieren Sie die Datumszeichenfolge in das Format JJJJ-MM-TT:

<code class="language-sql">SELECT * FROM test WHERE date BETWEEN "2011-11-01" AND "2011-11-08";</code>
Nach dem Login kopieren

Durch die Verwendung des richtigen Datumsformats kann SQLite die Bedingung korrekt auswerten und die Ergebnisse auf Datensätze innerhalb des angegebenen Datumsbereichs beschränken.

Das obige ist der detaillierte Inhalt vonWarum gibt meine SQLite-Abfrage trotz Verwendung einer BETWEEN-Klausel alle Datumsangaben zurück?. 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