在 laravel 中查找早于 15 天的日期
Find a date older than 15 days in laravel
我需要显示比较交货日期(如果超过 15 天)并且还显示 track_track_status=0 作为 default.when 我这样做会引发错误
错误
找不到列:1054 Unknown column ''delivery_date' + INTERVAL 15 DAY < NOW()' in 'where clause
$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();
->orWhere( 'delivery_date', '<=', Carbon::now()->subDays(15))
使用原始查询如下:
$now = \Carbon\Carbon::now();
->orWhere(DB::raw(registrations.delivery_date + INTERVAL 15 DAY, "<=", $now))
检查它并在此处回复returns任何错误。
就这样:
$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();
问题在于,查询生成器将为 table 名称添加别名,并且如果它在 whereRaw
中,则不会为其添加别名
我需要显示比较交货日期(如果超过 15 天)并且还显示 track_track_status=0 作为 default.when 我这样做会引发错误
错误 找不到列:1054 Unknown column ''delivery_date' + INTERVAL 15 DAY < NOW()' in 'where clause
$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();
->orWhere( 'delivery_date', '<=', Carbon::now()->subDays(15))
使用原始查询如下:
$now = \Carbon\Carbon::now();
->orWhere(DB::raw(registrations.delivery_date + INTERVAL 15 DAY, "<=", $now))
检查它并在此处回复returns任何错误。
就这样:
$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();
问题在于,查询生成器将为 table 名称添加别名,并且如果它在 whereRaw