我正在使用Laravel7。我有一个名为aids witch的表,其中有一些列和这两列:
- start_date
- end_date
我想按开始日期和结束日期之间的持续时间对数据顺序进行排序:
$query = Assistance::join('users', 'assistances.user_id', '=', 'users.id')
->select('assistances.*')
->orderBy('duration between start_date and end_date');
;
我该怎么做?
答案 0 :(得分:2)
请尝试以下操作-请记住,这效率不高
DATEDIFF
返回两个日期之间的日期。您可能还想使用TIMESTAMPDIFF
,它接受第一个参数(例如“ hour”),以便您获得更精细的控制
$query = Assistance::join('users', 'assistances.user_id', '=', 'users.id')
->select('assistances.*')
->orderBy(DB::raw('DATEDIFF(start_date, end_date)'))
->get();
也请use DB;
在您的课程中。