Py学习  »  DATABASE

检查mysql中两列之间的时间

Priya Jaiswal • 5 年前 • 1222 次点击  

我有一个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

在我把唱片插入 预订 我想查一下日期和时间是否已经预订了。 我该怎么做呢?

我尝试使用以下代码:

SELECT * FROM booking 
WHERE CAST(start_time as date) BETWEEN 
'2012-08-30' AND '2012-08-31';  
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/44059
 
1222 次点击  
文章 [ 2 ]  |  最新文章 5 年前
Yasii
Reply   •   1 楼
Yasii    6 年前

根据您的表格结构,最好使用

SELECT * FROM booking 
WHERE CAST(CONCAT(date,' ',start_time)AS timestamp) 
BETWEEN '2012-08-30' AND '2012-08-31'; 

否则最好对开始时间和结束时间都使用完整的时间戳。

Gordon Linoff
Reply   •   2 楼
Gordon Linoff    6 年前

如果我理解正确的话,你会得到 @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;