两个字段中两个日期之间的日期
Posted
技术标签:
【中文标题】两个字段中两个日期之间的日期【英文标题】:date between two dates in two fields 【发布时间】:2017-01-29 04:25:18 【问题描述】:我在酒店领域工作。我为每个酒店和每个房间创建了库存页面。
在我用开始日期和结束日期创建的数据库的数据结构中。在库存时,我们会在日期之间传递记录。
SELECT `crs_room_type_detail`.*, `crs_room_type`.`room_type_name`
FROM (`crs_room_type_detail`)
JOIN `crs_room_type` ON `crs_room_type_detail`.`room_type_id` = `crs_room_type`.`room_type_id`
WHERE `crs_room_type_detail`.`hotel_id` = '4'
AND `crs_room_type_detail`.`sdate` >= '2016-09-21'
AND `crs_room_type_detail`.`edate` <= '2016-10-04'
GROUP BY `crs_room_type_detail`.`room_type_id`
这是获取结果的查询。
对于我们有日期:2016 年 9 月 20 日和日期:2016 年 9 月 30 日的房间,这个标准不起作用,假设我改变条件,如 sdate
edate >= ' 2016-10-04' 它不适用于其他一些标准
【问题讨论】:
对于我们有 sdate : 2016-09-20 和 edate : 2016-09-30 的房间。它不起作用,因为查询是sdate
>= '2016-09-21'`所以2016-09-20
错过了
我想在两个日期之间
【参考方案1】:
试试这个
SELECT `crs_room_type_detail`.*, `crs_room_type`.`room_type_name`
FROM (`crs_room_type_detail`)
JOIN `crs_room_type` ON `crs_room_type_detail`.`room_type_id` = `crs_room_type`.`room_type_id`
WHERE `crs_room_type_detail`.`hotel_id` = '4'
AND `crs_room_type_detail`.`sdate` BETWEEN '2016-09-21' AND '2016-10-04'
AND `crs_room_type_detail`.`edate` BETWEEN '2016-09-21' AND '2016-10-04'
GROUP BY `crs_room_type_detail`.`room_type_id`
【讨论】:
【参考方案2】:使用 between 获取日期范围:
SELECT `crs_room_type_detail`.*, `crs_room_type`.`room_type_name`
FROM (`crs_room_type_detail`)
JOIN `crs_room_type` ON `crs_room_type_detail`.`room_type_id` = `crs_room_type`.`room_type_id`
WHERE `crs_room_type_detail`.`hotel_id` = '4'
AND `crs_room_type_detail`.`sdate` between '2016-09-21' and '2016-10-04'
GROUP BY `crs_room_type_detail`.`room_type_id`
【讨论】:
【参考方案3】:试试下面的脚本:
SELECT `crs_room_type_detail`.*, `crs_room_type`.`room_type_name`, date
FROM (`crs_room_type_detail`)
JOIN `crs_room_type` ON `crs_room_type_detail`.`room_type_id` =
`crs_room_type`.`room_type_id`
WHERE `crs_room_type_detail`.`hotel_id` = '4'
AND date(`crs_room_type_detail`.`sdate`) >= date('2016-09-21')
AND date(`crs_room_type_detail`.`edate`) <= date('2016-10-04')
GROUP BY `crs_room_type_detail`.`room_type_id`
【讨论】:
以上是关于两个字段中两个日期之间的日期的主要内容,如果未能解决你的问题,请参考以下文章