2016-11-16 20 views
0

MySQLでは、2つの値が2つの列の間にある行を見つける必要があります。SQL 2つの時間列の間の2つの時間値

たとえば、'15:00 'から'18:00'までのスケジュールを作成していますが、使用中の行があるかどうかを確認する必要があります。 '14:00 'から'18:30'までのレコードがある場合は、それを戻して検証する必要があります。

私のようなものを試してみましたが、いない作品:

select * from availabilities where (('15:00' or '18:00') between start_hour and end_hour) 

任意のアイデア?

+0

http://wiki.c2.com/?TestIfDateRangesOverlap – shawnt00

答えて

1

これは基本的に「範囲が別の範囲と重なっているかどうかのテスト」です。

SELECT * 
FROM availabilities 
WHERE '18:00' > start_hour AND end_hour > '15:00' 
0

あなたはdatatime /タイムスタンプ列

のEG時刻部分を抽出するためにTIME()機能を使用することができます。

SELECT * FROM Table 
WHERE TIME('timeStampCol') BETWEEN '12:00:00' AND '18:00:00' 
+0

http://stackoverflow.com/questions/6973844/select-records:開始時刻が終了時刻よりも小さいと、次のクエリは限り動作するはずです時間間隔で - 毎日120000〜180000の間 – Ripon

関連する問題