私は、それぞれがタイムスパンを持つエントリのデータベースを検索して、ユーザー入力時間またはタイムスパンがエントリスパン内にあるかどうかを確認するmysqlクエリに取り組んでいます。
元ユーザーは「13:00」または「13:00-16:00」と入力できます。
データベースには次のようなエントリがあります。
id startTime endTime
1 08:00 12:00
2 20:00 03:00
3 14:00 01:00
4 16:00 21:00
1日の期間(startTime <endTime)に対して、検索は非常に簡単です。問題は、スパンが深夜(endTime <startTime)を通過するときのテストです。このアプリケーションの場合、これらの値に日付を添付することはできません(時間としてのみ保存されます)。そのため、timediffなどは機能しません。
更新:
期間が24時間を超えることはないため、startTime1とendTime3は、26時間のアイテムではなく、常に2時間のアイテムになります。
私が日付を使用しない理由は、これが多かれ少なかれ営業時間のようなものに関連しているためです(ただし、正確にはそのユースケースではありません)。スパンが表すアイテムには毎日の時間が含まれているため、毎日に日時スタンプを追加することは実用的ではありません。