我正在研究一个 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
针对一天内的时间跨度(startTime < endTime)进行搜索很容易。问题是在跨度跨过午夜(结束时间 < 开始时间)时进行测试。对于此应用程序,这些值不能有日期附件(它们仅作为时间存储),因此 timediff 等将不起作用。
更新:
时间跨度永远不会超过 24 小时,因此 startTime 为 1 和 endTime 为 3 将始终是 2 小时项目,而不是 26 小时项目。
我不使用日期的原因是这与工作时间或多或少有关(但不完全是那个用例)。跨度表示的项目具有每天的小时数,因此为每一天添加日期时间戳是不切实际的。