繁体   English   中英

使用MySQL,如果日期在单独的列中,如何选择两个日期之间的数据

[英]Using MySQL how do I select data between two dates if the dates are in separate columns

在我的数据库中,我有一列有入住日期和一列有退房日期。 我需要选择入住日期<= 7/30/2017和退房日期> = 7/30/2017的每一行。

这是我现在拥有的代码:

SELECT * 
FROM `v_reservation_records` 
WHERE cast(checkin as date) <= '7/30/2017' 
AND cast(checkout as date) >= '7/30/2017'

这是来自数据库的示例日期:

2018-09-18

当我运行此查询时,没有得到任何结果,但我知道我的入住日期等于7/30/2017。 我想念什么? 还是有更简单的方法来实现我的目标?

假设您要投放有效的日期值
您还应该正确转换文字日期

SELECT * 
FROM `v_reservation_records` 
WHERE cast(checkin as date) <= str_to_date('7/30/2017' , '%d/%m/%Y')
AND cast(checkout as date) >= str_to_date('7/30/2017' , '%d/%m/%Y')

您还可以在

SELECT * 
FROM `v_reservation_records` 
WHERE str_to_date('7/30/2017','%d/%m/%Y') 
        between cast(checkin as date) AND cast(checkout as date) 

这样尝试

SELECT * 
FROM `v_reservation_records` 
WHERE DATE_FORMAT(checkin, '%m/%d/%Y') between '7/30/2017' 
AND '7/30/2017'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM