Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan Julat Tarikh SQLite Saya Menggunakan ANTARA Mengembalikan Semua Tarikh?

Mengapa Pertanyaan Julat Tarikh SQLite Saya Menggunakan ANTARA Mengembalikan Semua Tarikh?

Barbara Streisand
Barbara Streisandasal
2025-01-13 11:17:43789semak imbas

Why Does My SQLite Date Range Query Using BETWEEN Return All Dates?

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:

  1. Pengubahsuaian Pangkalan Data: Gunakan fungsi strftime('%Y-%m-%d', date_column) untuk mengemas kini lajur pangkalan data anda kepada format yang betul.

  2. 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!

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