У меня есть запрос с использованием Larvel's Eloquent, и мне нужно предложение where
, которое будет получать данные за последние 8 часов с текущей метки времени. Я могу легко сделать это в необработанном запросе, например:
SELECT * FROM task_tracker.tasks WHERE created_at > DATE_ADD(NOW(), INTERVAL -8 HOUR);
Но как мне это сделать в красноречивом формате? tasks.created_at
– это формат Datetime. У меня есть это сейчас:
$tasks = Task::join('users', 'tasks.added_by', '=', 'users.id') ->join('users AS x', 'x.id', '=', 'tasks.assigned_to') ->select([ 'tasks.id', 'tasks.task_description', 'tasks.start_timestamp', 'tasks.end_timestamp', 'tasks.status', 'users.name', 'x.name AS assign', 'tasks.created_at' // ])->where('tasks.created_at', '>', 'DATE_ADD(NOW(), INTERVAL -8 HOUR)'); ])->where(DB::raw('tasks.created_at', '=', 'DATE_ADD(NOW(), INTERVAL -8 HOUR)' )); dd($tasks);
Я попытался использовать DB::raw
и простой encloure в одной кавычки (прокомментированная строка), но не работает и не получает никаких данных. Я использую MySQL.