mysql - 如何检查两个日期时间在固定时间范围之间有多少小时
问题描述
我有以下情况:
我有一个从 17 小时到 22 小时的时间范围。
例如,我有一排包含以下信息:
Starttime (datetime): 2020-03-16 13:15:00
Endtime (datetime): 2020-03-16 19:45:00
如何获得固定时间范围之间的小时数(-> 2:45h)
解决方案
假设开始/结束时间不跨越几天,您可以使用timediff()
,greatest()
和least()
:
select timediff(
greatest(time(start_time), '17:00:00'),
least(time(endtime), '22:00:00')
)
greatest(time(start_time), '17:00:00')
如果(时间分量)start_time
小于 17 小时,则给您 17 小时。
least(time(endtime), '22:00:00'
如果结束时间大于 22h,则产生 22h。
推荐阅读
- c# - 使用 OpenXML 从 Excel 读取数据时如何跳过空单元格?
- java - UserCollectionPage 有一个 API "getCurrentPage()" 类型列表
从目录中只返回 100 个用户 - go - 如何在 golang 中解析自定义 X509v3 扩展?
- qt - 使用 QML FileDialog 会导致工具栏中的“绑定循环”
- c - 如何修复 C 编程中的分段错误?
- javascript - 遍历深度嵌套的对象数组并生成新数组
- r - 如何计算索引为 100 的向量中的复合收益?
- python - 如何在 python 中使用 Pandas 数据框按特定日期和时间进行过滤
- audio - chromecast 是否支持 HLS 流的 unmixed.audio 轨道
- dacl - 我有一个关于如何检查 Windows Station 访问权限的问题