У меня есть запрос с использованием Larvel's Eloquent, и мне нужно предложение where
, которое будет получать данные за последние 8 часов с момента создания текущей метки времени. Я могу легко сделать это в необработанном запросе типа:Получить данные за последние 8 часов в столбце datetime. Eloquent
SELECT * FROM task_tracker.tasks WHERE created_at > DATE_ADD(NOW(), INTERVAL -8 HOUR);
Но как это сделать в красноречивом формате? Формат tasks.created_at
- это формат даты и времени. У меня это в настоящее время:
$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.