0

質問のタイトルについてお詫び申し上げます。これを明確にするのに苦労しています。例を使用すると、はるかに簡単になります。

2 つの日付フィールドを持つテーブルがあります。開始日と終了日。ダミーデータ:

+----+------------+------------+
| id | start_date | end_date   |
+----+------------+------------+
| 1  | 2012-01-10 | 2012-04-13 |
| 2  | 2012-02-09 | 2012-05-12 |
| 3  | 2012-03-08 | 2012-06-11 |
| 4  | 2012-04-07 | 2012-07-10 |
| 5  | 2012-05-06 | 2012-08-09 |
+----+------------+------------+

2012 年 3 月としましょう。2012 年 3 月が ID 2 の start_date と end_date の範囲内にあるかどうかを確認する方法はありますか? 3 はどうですか (2012 年 3 月の一部は start_date と end_date の間にあるため、3 は少し異なります。これで問題ありません。1 か月全体は必要ありません。部分は問題ありません)。

私はここに座ってクエリの書き方を考えていましたが、完全に困惑しています

4

2 に答える 2

2

あなたの質問を理解しているので、各日付範囲が 2012 年 3 月と重複しているかどうかを確認したいと考えています。

させて

  • Aと の最大値<beginning of march>start_dateなる

  • Bの最小値<end of march>となるend_date

A<かどうかを確認しますB

于 2012-08-05T11:49:09.180 に答える
2

正確な月の範囲を使用できる場合 (つまり、開始日の正確な日と終了日を指定する場合)、そのようなクエリは正常に機能するはずです。

SELECT id FROM MyTable 
WHERE start_date <= '2012-03-31' 
AND end_date >= '2012-03-01' 
于 2012-08-05T11:50:25.543 に答える