Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Menyelesaikan Keputusan Perbandingan Tarikh yang Salah Menggunakan DATE_FORMAT dalam MySQL?

Bagaimana untuk Menyelesaikan Keputusan Perbandingan Tarikh yang Salah Menggunakan DATE_FORMAT dalam MySQL?

Patricia Arquette
Patricia Arquetteasal
2024-10-24 12:08:29543semak imbas

How to Resolve Incorrect Date Comparison Results Using DATE_FORMAT in MySQL?

Perbandingan Tarikh MySQL dengan DATE_FORMAT: Menyelesaikan Isu

Soalan:

Apabila membandingkan tarikh menggunakan fungsi DATE_FORMAT, a pengguna menemui hasil yang tidak dijangka, dengan rekod sebelum tarikh perbandingan muncul dalam keputusan. Bagaimanakah isu ini boleh diselesaikan?

Analisis:

Masalah berpunca daripada membandingkan tarikh sebagai rentetan dan bukannya nilai tarikh sebenar mereka. DATE_FORMAT menukar tarikh kepada rentetan, yang kemudiannya dibandingkan secara leksikografik, membawa kepada keputusan yang salah.

Penyelesaian:

Untuk membandingkan tarikh dengan tepat, pertanyaan harus membandingkan nilai tarikh secara langsung, menggunakan fungsi DATE() untuk mengekstrak maklumat tarikh sahaja. Pertanyaan yang diubah suai berikut menyelesaikannya:

<code class="sql">select date_format(date(starttime),'%d-%m-%Y') from data
where date(starttime) >= date '2012-11-02';</code>

Dalam pertanyaan ini:

  • tarikh(masa mula) mengekstrak bahagian tarikh daripada lajur masa mula.
  • tarikh ' 2012-11-02' ialah tarikh perbandingan contoh dalam format standard ISO-8601 (yyyy-mm-dd).

Dengan membandingkan tarikh secara langsung, pertanyaan menapis rekod dengan berkesan pada tarikh tersebut. sebelum '2012-11-02'.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Keputusan Perbandingan Tarikh yang Salah Menggunakan DATE_FORMAT dalam MySQL?. 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