我需要显示比较交货日期是否超过15天并且还显示track_track_status = 0作为默认值。当我这样做时它会抛出错误
错误 未找到列:1054未知列'" delivery_date' +间隔15天< NOW()'在' where子句
$secondstatus = DB::table('registrations')
->join('ssi_tracks', 'registrations.registration_id', '=', 'ssi_tracks.registration_id')
->select('ssi_tracks.ssi_track_id', 'address', 'model', 'chassis', 'delivery_date','ssi_tracks.track_second_status')
->where([["ssi_tracks.track_second_status", "=", 0]])
->orWhereRaw('registrations.delivery_date + INTERVAL 15 DAY <= NOW()')
->get();
答案 0 :(得分:3)
答案 1 :(得分:0)
使用原始查询,如下所示:
$now = \Carbon\Carbon::now();
->orWhere(DB::raw(registrations.delivery_date + INTERVAL 15 DAY, "<=", $now))
如果它返回任何错误,请检查并在此处作出响应。
答案 2 :(得分:0)
只是做:
$secondstatus = DB::table('registrations')
->join('ssi_tracks', 'registrations.registration_id', '=', 'ssi_tracks.registration_id')
->select('ssi_tracks.ssi_track_id', 'address', 'model', 'chassis', 'delivery_date','ssi_tracks.track_second_status')
->where([["ssi_tracks.track_second_status", "=", 0]])
->orWhere('registrations.delivery_date', '<=', \DB::raw("NOW() - INTERVAL 15 DAYS")))
->get();
问题是查询构建器将为表名设置别名,但如果它在whereRaw