lundi 12 août 2019

STR_TO_DATE is not working for query separated by IF condition in laravel

Need to fetch the record from MYSQL with given from and to dates. The dates are defined as VARCHAR in DB. How to use STR_TO_DATE(?, '%d/%m/%Y') in laravel.

Already tried by using DB::raw("STR_TO_DATE(due_date, '%d/%m/%Y')")

$from_date = "12/08/2019";
$to_date = "12/12/2020";
$from_date_raw = DB::raw("STR_TO_DATE('".$from_date."', '%d/%m/%Y')");
$to_date_raw = DB::raw("STR_TO_DATE('".$to_date."', '%d/%m/%Y')");
$due_date_raw = DB::raw("STR_TO_DATE('due_date', '%d/%m/%Y')");
$query = DB::table('due_details')->where('amount', '>', 0);
if ($from_date != null && $to_date != null) {
    $query->whereBetween($due_date_raw, [$from_date_raw, $to_date_raw]);
} else if ($from_date != null) {
    $query->where($due_date_raw, '>=', $from_date_raw);
} else if ($to_date != null) {
    $query->where($due_date_raw, '<=', $to_date_raw);
}
$data = $query->orderBy('id', 'asc')->get();

expected the data between those given dates.given table('due_details') data



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire