Вы, похоже, храните ДАТУ в поле varchar. Это не очень хорошая идея. Вам необходимо либо заново создать таблицу и сохранить date_to
в качестве даты, используя стандартный формат SQL DATE
(и использовать формат Y-m-d
при вставке), либо привести столбец к дате при выборе:
$check= Usersubstitutions::where([
['user_id', '=', $request->user],
[\DB::raw("STR_TO_DATE(date_to,'%d-%m-%Y')") ', '>=', date("Y-m-d")]
])->first();
Обратите внимание, что это сделает любые индексы бесполезными и заставит запрос выполняться очень (очень) медленно.
Примечание: STR_TO_TIME
- это только MySQL, но есть эквиваленты в других СУБД, например. в SQL Server это выглядит как CONVERT(DATE, date_to, 105)