php - 检查MySQL中两列之间的时间
问题描述
我有一个 MySQL 表,booking
:
id shop_id date start_time end_time
1 21 2019-1-13 09:00 10:00
2 21 2019-1-13 11:00 11:30
现在,在我将记录插入booking
表之前,我想检查日期和时间是否已经预订。我怎样才能做到这一点?
我尝试使用以下代码:
SELECT * FROM booking
WHERE CAST(start_time as date) BETWEEN
'2012-08-30' AND '2012-08-31';
解决方案
如果我理解正确,您将拥有单独的 、 和 值@date
,@start_time
并且@end_time
您想在表格中检查这些值。
要返回所有重叠:
SELECT b.*
FROM booking b
WHERE @date = b.date AND
@end_time >= b.start_time AND
@start_time < b.end_time;
推荐阅读
- cypher - 什么密码查询可以找到我需要的东西
- vba - 减去表中的月份值
- python - 嵌套列表排序
- javascript - 防止 HTML 5 `video` 在 src 更改时闪烁海报图像
- android - osmdroid 无法解析方法“setUserAgentValue”
- c# - LINQ中`is`和`as`之间的性能差异
- python-requests - 使用 Insomnia 工具测试 authlib 失败
- c++ - Tensorflow 1.5 contrib cmake C++链接问题MSVC使用SessionOptions GpuOptions时
- laravel - 我可以远程访问 Laravel 开发服务器吗?
- flask - jinja2中的for循环用于json文件