2016-04-28 62 views
1

我有一個查詢使用Laravel的雄辯,我需要一個where子句,將獲得自當前時間戳以來最近8小時的數據。我可以很容易地做到這一點像一個原始查詢:從日期時間列的過去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和一個單引號(在註釋行)普通encloure但沒有工作,沒有得到任何數據。我正在使用MySQL。

回答

1

DB::raw有一個參數,以便嘗試whereRaw這樣的:

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

相關問題