在日期时间列Eloquent中获取最近8小时的数据


Get data from the last 8 hours in a datetime column Eloquent

我有一个使用Laravel的Eloquent的查询,我需要一个where子句,它将获取自当前时间戳以来最近8小时的数据。我可以在原始查询中很容易地做到这一点,比如:

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和一个简单的引号(注释行),但不起作用,也没有得到任何数据。我正在使用MySQL。

DB::raw有一个参数,所以尝试whereRaw如下:

->whereRaw('tasks.created_at = DATE_ADD(NOW(), INTERVAL -8 HOUR')