我的表格有两个日期字段,begin
和end
。
我试图获取已经开始但尚未结束的所有行。如果今天小于begin
,则不应包括在内。如果今天比end
更重要,他们就不应该被包括在内。
我正在使用雄辩的laravels。这是我试过的
$now = \Carbon\Carbon::now();
$promos = \App\Models\LivePromo::
where("begin", "<=", $now)
->where("end", ">=", $now)
//Other conditions
->get();
这看起来很有效,但它也选择了已经结束的更大的行。 我怎么能像我期望的那样完成这项工作?
begin
列是一个日期时间列,表示&#39;促销&#39;应该开始,end
列是一个日期时间列,表示&#39;促销&#39;应该结束。我只想尝试获取当前日期和时间的所有有效促销
示例数据
$now = '2017-02-24 10:29:10' // \Carbon\Carbon::now();
答案 0 :(得分:0)
从结束日期条件中删除=
:
$now = \Carbon\Carbon::now();
$promos = \App\Models\LivePromo::
where("begin", "<=", $now)
->where("end", ">", $now)
->get();
答案 1 :(得分:0)
此外,它可能取决于您的数据库引擎。
某些引擎要求您使用whereDate
()方法而不是普通的where()
$promos = LivePromo::whereDate("begin", "<=", $now)
->whereDate("end", ">", $now)
->get();