我在 mysql 表中存储了一个时间字符串,如 8:00AM、9:00AM 等。我想检查时间范围,如果上午 11:00 出现在上午 9:00 到下午 6:00 之间?如何在mysql中找到它。
时间存储如下
day depart_time return_time
Monday 9:00am 5:00pm
Wednesday 9:30am 4:30pm
Tuesday 9:00am 3:00pm
最佳答案
你可以使用 STR_TO_DATE
将字符串数据类型转换为时间。在下面的示例中,将返回出发时间和返回时间之间“11:00am”的所有行。
SELECT `depart_time`,
`return_time`
FROM `table`
WHERE STR_TO_DATE('11:00am', '%l:%i%p') BETWEEN STR_TO_DATE(`depart_time`, '%l:%i%p') AND STR_TO_DATE(`return_time`, '%l:%i%p')
STR_TO_DATE
函数根据指定的格式解析字符串。在这种情况下,它是:
- %l: 小时 (1-12)
- %i: 分钟 (00-59)
- %p:上午/下午
关于php - 如何在给定 "wall time"表的 mysql 中查找时间范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6476262/