と仮定私次の表があります:00-11:30レコードの選択
id | value | start_time | stop_time
-----------------------------------------------------------------
1 | value1 | 06:00:00 | 11:00:00
2 | value2 | 12:00:00 | 13:00:00
が、私はその時間帯のオーバーラップ05のレコードを選択する必要があります。つまり、返されるレコードが1行目であることを意味します。
このようなクエリを試しましたが、指定された時間範囲が真夜中になると失敗します。おそらくそれは日付を伴わずに行うことは不可能です。
SELECT * FROM table WHERE
(
(start_time >= '05:00:00' AND stop_time <= '11:30:00') ||
(start_time >= '05:00:00' AND start_time <= '05:00:00') ||
(start_time <= '05:00:00' AND stop_time >= '11:30:00') ||
(stop_time >= '11:30:00' AND stop_time <= '05:00:00')
)
私はBETWEEN
を使用して、指定された時間範囲およびフィルタリングのすべての分を列挙すると思っていますが、よりよい解決策があるかもしれません。あなたが希望する結果を達成するために、私は見ることができます
はあなたが私達にあなたの 'BETWEEN'クエリを示してもらえますか? – marcio
@Daveこのデータ型は、この表の 'start_time'と' stop_time'フィールドに使用していますか? –
私は2番目のmarcioさんとalexさんです - あなたのSQLコマンドとテーブルのデータ構造も投稿してください。追加のテーブルデータと期待される結果も素晴らしいでしょう。 :) – Nonym