Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengenalpasti Julat Tarikh Bertindih dalam MySQL?

Bagaimanakah Saya Boleh Mengenalpasti Julat Tarikh Bertindih dalam MySQL?

Linda Hamilton
Linda Hamiltonasal
2025-01-18 08:06:12137semak imbas

How Can I Identify Overlapping Date Ranges in MySQL?

Kenal pasti julat tarikh bertindih dalam MySQL

Dalam MySQL, anda boleh menentukan sama ada julat tarikh yang ditentukan bertindih dengan senarai julat tarikh yang telah ditetapkan dengan bijak menggunakan logik secara terbalik.

Berikut ialah contoh:

<code>1983年6月10日至1983年6月14日
1983年7月15日至1983年7月16日
1983年7月18日至1983年7月18日</code>

Jika kami ingin menyemak sama ada julat tarikh 6 Jun 1983 hingga 18 Jun 1983 bertindih dengan mana-mana julat yang ditentukan, kami boleh menentukan syarat berikut:

Tempoh masa tiada dalam senarai:

  • Masa mula adalah lewat daripada masa tamat tempoh perbandingan.
  • Masa tamat lebih awal daripada masa mula tempoh perbandingan.

Dengan mengecualikan tempoh masa yang sepadan dengan kriteria ini, kami mengenal pasti semua tempoh masa yang bertindih dengan berkesan.

Kes sempadan:

  • Tarikh tamat adalah sama dengan tarikh mula tempoh perbandingan.
  • Tarikh mula adalah sama dengan tarikh tamat tempoh perbandingan.

Situasi ini perlu dipertimbangkan secara individu untuk menentukan sama ada ia bertindih.

Pertanyaan SQL berikut boleh digunakan untuk mendapatkan semula baris bertindih berdasarkan logik terbalik:

<code class="language-sql">SELECT *
FROM periods
WHERE range_start = @check_period_start</code>

Dengan menggunakan operator NOT dalam klausa WHERE, pertanyaan yang sebaliknya akan menemui baris tidak bertindih akan dinafikan, dengan berkesan mengembalikan baris bertindih.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengenalpasti Julat Tarikh Bertindih 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