我怎样才能更改此SQL语句为雄辩的查询..
SELECT * FROM `promotions`
WHERE
(CURDATE()
BETWEEN from_date - INTERVAL 2 DAY AND from_date)
OR
(CURDATE() >= from_date AND CURDATE() <= to_date)
我这样尝试过>>
$start = date("Y-m-d 00:00:00"); //todate
$end = // todate + 2
return $this->model->whereBetween('from_date',[$start,$end])->get();
但我不知道如何更改此部分>>
OR (CURDATE() >= from_date AND CURDATE() <= to_date)
请告诉我正确的方式..谢谢大家的尊重。
我认为这应该可以做到:
$today = date('Y-m-d H:i:s');
$end_date = date('Y-m-d H:i:s', strtotime('+2 days'));
$this->model->whereBetween('from_date',[$today,$end_date])
->orWhere( function( $query ) {
$query->where($today, '>=', 'from_date')
->where($today, '<=', 'to_date');
})
->get();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句