Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan Julat Tarikh SQLite Saya Mengembalikan Keputusan Tidak Dijangka?

Mengapa Pertanyaan Julat Tarikh SQLite Saya Mengembalikan Keputusan Tidak Dijangka?

Patricia Arquette
Patricia Arquetteasal
2025-01-13 08:35:42412semak imbas

Why Does My SQLite Date Range Query Return Unexpected Results?

Pemformatan Tarikh yang Salah Menyebabkan Masalah dalam Pertanyaan Julat Tarikh SQLite

Masalah yang kerap berlaku apabila menanyakan pangkalan data SQLite untuk data dalam julat tarikh tertentu ialah pertanyaan mengembalikan semua tarikh, mengabaikan julat yang ditentukan. Ini selalunya berpunca daripada salah tanggapan tentang format tarikh SQLite.

SQLite memerlukan tarikh dalam format YYYY-MM-DD. Pertanyaan menggunakan format lain, seperti "11/1/2011" dan "11/8/2011", dianggap sebagai rentetan teks, bukan tarikh.

Ini membawa kepada pertanyaan seperti ini berkelakuan di luar jangkaan:

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

Oleh kerana SQLite menganggap '11/1/2011' dan '11/8/2011' sebagai rentetan, operator BETWEEN membandingkannya secara leksikografik (sebagai teks). Pertanyaan akan mengembalikan mana-mana baris di mana lajur date mengandungi rentetan ini, tanpa mengira tarikh sebenar.

Penyelesaian adalah untuk memastikan semua tarikh dalam pangkalan data dan pertanyaan anda mematuhi format YYYY-MM-DD dengan ketat. Ini membolehkan SQLite mentafsir tarikh dengan betul dan mengembalikan hasil yang tepat untuk julat tarikh anda.

Atas ialah kandungan terperinci Mengapa Pertanyaan Julat Tarikh SQLite Saya Mengembalikan Keputusan Tidak Dijangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn