我有一个包含列varchar的表" date_start"和列varchar" date_end"。
以下是存储在日期中的日期示例:
2016-01-05 00:00:00
我想收集两个日期之间的所有元素。我试过这个,但它不起作用:
$dateStart = $request->get('date_start'); // Return 1990-01-01
$dateEnd = $request->get('date_end'); // Return 2017-12-06
$query = Event::published();
if ($dateStart != '') { $query->where('date_start', '<=', $dateStart); };
if ($dateEnd != '') { $query->where('date_end', '>=', $dateEnd); };
$items = $query->get();
返回的查询:
select * from `events` where `status` = 'PUBLIÉE' and `date_start` <= '1990-01-01' and `date_end` >= '2017-12-06' order by `updated_at` desc`
答案 0 :(得分:1)
这应该有效
$query->where('date_start', '>', $dateStart)->where('date_end', '<=', $dateEnd)->get();