我正在尝试编写一个比较时间范围的 SQL 语句。我从这个问题中得到了一些很好的想法:
然而,问题是跨越午夜的时间,例如给定以下开始和结束时间:
- 19:00 - 20:00
- 21:00 - 21:30
- 23:00 - 01:00
- 01:00 - 03:00
我想找到时间相交/重叠 23:30 - 00:30 的任何行。只有当数据库中的行和我想在同一天检查开始和结束的时间范围时,我的代码才有效。
我尝试将时间转换为自午夜以来的秒数,然后如果范围跨越午夜,则将 86400 秒添加到结束时间。我在这方面取得了有限的成功,但它仍然错过了一些重叠的范围。