Heim >Datenbank >MySQL-Tutorial >Warum gibt meine SQLite-Abfrage alle Datumsangaben statt des angegebenen Bereichs zurück?

Warum gibt meine SQLite-Abfrage alle Datumsangaben statt des angegebenen Bereichs zurück?

DDD
DDDOriginal
2025-01-13 11:08:42658Durchsuche

Why Does My SQLite Query Return All Dates Instead of the Specified Range?

SQLite-Fehler bei der Datumsbereichsabfrage: behoben

Wenn Sie SQLite zum Erstellen eines Verkaufsberichts verwenden, geben die Abfrageergebnisse alle Daten statt Daten innerhalb des angegebenen Bereichs zurück. Der folgende Abfragecode wird verwendet:

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

Ursache des Problems:

SQLite erfordert Datumsangaben im Format JJJJ-MM-TT. Datumsangaben und Abfragezeichenfolgen in der Datenbank folgen jedoch nicht diesem Format. Daher interpretiert SQLite „Datum“ als Zeichenfolge und nicht als Datum.

Lösung:

Um dieses Problem zu beheben, stellen Sie sicher, dass sowohl das Datum als auch die Abfragezeichenfolge in der Datenbank dem Format JJJJ-MM-TT entsprechen. Die richtige Abfrage sollte so aussehen:

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

Das obige ist der detaillierte Inhalt vonWarum gibt meine SQLite-Abfrage alle Datumsangaben statt des angegebenen Bereichs zurück?. 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