我想在兩個表格中找出兩個日期之間的差異。相比completed_guides.created_at從2個連接表中使用datediff
的uploads.published_at我不斷收到這說的錯誤:
SQLSTATE[42000]: Syntax error or access violation: 1582 Incorrect parameter count in the call to native function 'datediff' (SQL: select users.*,completed_guides.created_at as completed_at,uploads.published_at,datediff(HOUR, published_at, completed_at) from `users` inner join `uploads` on `users`.`id` = `uploads`.`user_id` inner join `completed_guides` on `uploads`.`id` = `completed_guides`.`upload_id` where `completed_guides`.`upload_id` = 2839 limit 10)
這裏是我的代碼。任何幫助,將不勝感激。
$select = [
'users.*',
'completed_guides.created_at as completed_at',
'uploads.published_at',
'datediff(HOUR, published_at, completed_at) as date_diff'
];
return User::select(DB::raw(join(',', $select)))
->join('uploads', 'users.id', '=', 'uploads.user_id')
->join('completed_guides', 'uploads.id', '=', 'completed_guides.upload_id')
->where('completed_guides.upload_id', $this->id)
->take(10)
->get();
管理得到它的工作,需要刪除'HOUR'參數。現在它在0天的差異中返回0,是否有可能以'Y-m-d H:i'格式返回? – Ben
您可以使用'DATE_FORMAT(date,format)'sql方法,試試這個。我從我的答案中刪除了'HOUR'參數! –
@BenShepherd - 我已經更新了我的答案,請看看! –