2011-08-16 3 views
0

私は2つのタイプの時間の列を24時間持っています。彼らは誰かが利用可能なときの範囲を定義します。例:MySQLの時刻フィールド、境界のチェック/包含

10:00:00 14:30:00 

現在の時刻が2つの列の間にあるかどうかを確認する簡単な方法はありますか?もしこれが基本的であれば、謝罪して、MySQLの日付/時刻関数をブラウズしながら簡単な方法を見つけることができませんでした。

答えて

1

このようなことを試してみてください。私はそれを確かめるためにテストしなければならないだろう。

SELECT * FROM `available_table` WHERE (TIME(NOW()) > `begin_time` AND TIME(NOW()) < `end_time`) 
1

他の提案は動作しますが、私はこのようなもののために意味されるBETWEENキーワードを使用することをお勧めします。

WHERE DateTime BETWEEN TIME(Start_Time) AND TIME(End_Time) 

これは、その範囲内のすべてを取得します。

Documentation for BETWEEN

+0

ここで、BETWEENの境界は変数です。 – Vache

+0

が更新されました。 – babonk

+1

あなたが深夜を取るとき、これは私の答えよりもうまくいくはずです。しかし、単に時間を比較している(そして列がTIME型である)場合、TIME()で日付式をラップするべきではありませんか? –