私が直面している問題は非常に複雑ではなく、ここにはいくつかの答えがありますが、私は必要なときに問題を解決していません。 私は、timefromとtimetoという名前のVARCHAR型の2つのフィールドを持つテーブルを持っています。 これらのフィールドには、時刻が12:00、05:18,00:05の形式で格納されます。日付はありません。秒はありません。時間は24時間です。 starttimeとendtimeという2つのフィールドを持つフォームがあります。そして、ユーザーの開始時刻と終了時刻が交差するデータベースから、DBのtimefromとtimetoフィールドのすべての行を選択したいとします。mysqlデータベースに格納された2回の時間の交点を見つける方法
"SELECT * FROM reservation WHERE ((timeto>='$timefrom' AND timeto<='$timeto') OR (timefrom>='$timefrom' AND timefrom <='$timeto'))"
このクエリは、交差点のすべての種類のために動作しますが、ユーザーによって与えられた時間はDBに保存されている時間内に収まるいない場合: は、私は次のクエリを持っています。 たとえば、DB timefrom = 20:00、timeto = 23:00、ユーザー入力starttime = 21:00およびendtime = 22:00の場合、問合せはいずれの交差点も戻さずに済むはずです。 誰でも私に信頼できる解決策を見せることができれば、大きな助けになるでしょう。ユーザーの時間がtimeto
とtimefrom
の間にある場合THANKSは
これは動作していないと私はなぜ – DevMan
私の悪い、私はそれをテストしていない理由を知らない。 –
これはうまくいきましたが、まだこのクエリーで解決されていない問題があります。私のstarttimeが19:00で、endtimeが21:00(つまり、endtimeがdbに格納されたstarttimeに等しいことを意味する)であれば、クエリは行を返しますが、交差点がないのですべてのクエリの中の<= and > =演算子です。これには解決策がありますか? – DevMan