【发布时间】:2021-08-26 03:30:55
【问题描述】:
所以目前,我正在尝试显示不在日期 X 和日期 Y 之间的项目列表。 让我们假设 book_date_start = 2021-06-15,并且 bookdate_end = 2021-06-20
这是我当前的查询:
$query->select('fac_query')
->from('facility_booking')
->where('book_date_start', '>=', $newstartdate)
->where('book_date_end', '<=', $newenddate);
所以基于此
$newstartdate = 2021-06-13 and $newenddate = 2021-06-19 (Returns 0 records)
$newstartdate = 2021-06-21 and $newenddate = 2021-06-25 (Returns 0 records)
$newstartdate = 2021-06-11 and $newenddate = 2021-06-12 (Returns 0 records)
$newstartdate = 2021-06-13 and $newenddate = 2021-06-25 (Returns 1 records)
$newstartdate = 2021-06-17 and $newenddate = 2021-06-19 (Returns 0 records)
所以基本上当我写出上述内容时,我意识到我的查询是错误的,因为 2021-06-13 小于 2021-06-15(真),而 2021-06-20 大于 2021 -06-25 (true) 也是,这就是它返回记录的原因。
我的问题: 如果我只想返回记录是选择的日期在 2021-06-15 到 2021-06-20 之间,我将如何编写查询? (我很确定我想多了)但我迷路了。我不需要完整的查询或答案,我只希望有人能指出我稍微正确的方向,我会很高兴的。谢谢大家的阅读。
【问题讨论】:
-
谢谢!所以我意识到我应该使用 ->whereBetween('book_date_start', [$newstartdate, $newenddate]);这将允许我检查日期的开始是否在此 X 和 Y 日期之间。 (如果是,它将返回记录)。