ホームページ >データベース >mysql チュートリアル >MySQL で重複する日付範囲を特定するにはどうすればよいですか?

MySQL で重複する日付範囲を特定するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-18 08:06:12133ブラウズ

How Can I Identify Overlapping Date Ranges in MySQL?

MySQL で重複する日付範囲を特定する

MySQL では、逆のロジックを巧みに適用することで、指定した日付範囲が事前定義された日付範囲のリストと重複するかどうかを判断できます。

これは例です:

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

1983 年 6 月 6 日から 1983 年 6 月 18 日までの日付範囲が定義された範囲と重複するかどうかを確認したい場合は、次の条件を決定できます。

リストにない期間:

    開始時刻が比較期間の終了時刻より後です。
  • 終了時刻が比較期間の開始時刻より前です。
これらの基準に一致する期間を除外することで、重複するすべての期間を効果的に特定します。

境界ケース:

    終了日は比較期間の開始日と同じです。
  • 開始日は比較期間の終了日と同じです。
これらの状況が重複するかどうかを判断するには、個別に検討する必要があります。

次の SQL クエリを使用すると、逆ロジックに基づいて重複する行を取得できます:

<code class="language-sql">SELECT *
FROM periods
WHERE range_start = @check_period_start</code>
WHERE 句で NOT 演算子を使用すると、重複しない行を検索するクエリが否定され、実質的に重複する行が返されます。

以上がMySQL で重複する日付範囲を特定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。