Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan Julat Tarikh SQLite Saya Menggunakan ANTARA Mengembalikan Semua Tarikh?
Menyelesaikan Masalah Julat Tarikh SQLite Pertanyaan
Isu pertanyaan SQLite biasa melibatkan penggunaan operator BETWEEN
dengan tarikh dalam format "MM/DD/YYYY", tanpa diduga mengembalikan semua tarikh dan bukannya julat yang dikehendaki.
Masalahnya: Pemformatan Tarikh Tidak Betul
SQLite memerlukan tarikh untuk diformatkan sebagai "YYYY-MM-DD". Jika pangkalan data atau pertanyaan anda menggunakan format yang berbeza (seperti "MM/DD/YYYY"), SQLite menganggap tarikh sebagai rentetan, yang membawa kepada hasil yang salah—selalunya memilih setiap tarikh dalam jadual.
Penyelesaian: Pemformatan Tarikh Konsisten
Pembetulan adalah mudah: pastikan pemformatan "YYYY-MM-DD" yang konsisten untuk semua tarikh. Anda boleh mencapai ini dalam dua cara:
Pengubahsuaian Pangkalan Data: Gunakan fungsi strftime('%Y-%m-%d', date_column)
untuk mengemas kini lajur pangkalan data anda kepada format yang betul.
Pengubahsuaian Pertanyaan: Ubah suai pertanyaan SQL anda untuk menggunakan format yang betul secara langsung. Contohnya:
<code class="language-sql">SELECT * FROM test WHERE date BETWEEN '2011-11-01' AND '2011-11-08';</code>
Dengan menggunakan format tarikh yang betul, klausa BETWEEN
anda akan berfungsi seperti yang diharapkan, dengan tepat memilih tarikh dalam julat yang anda tetapkan.
Atas ialah kandungan terperinci Mengapa Pertanyaan Julat Tarikh SQLite Saya Menggunakan ANTARA Mengembalikan Semua Tarikh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!