Laravel 按开始日期和结束日期之间的持续时间排序数据顺序
我用的是拉威尔7。我有一个名为assistances的表,它有一些列和这两列:Laravel 按开始日期和结束日期之间的持续时间排序数据顺序,laravel,laravel-7,Laravel,Laravel 7,我用的是拉威尔7。我有一个名为assistances的表,它有一些列和这两列: - start_date - end_date 我想按开始日期和结束日期之间的持续时间对数据顺序进行排序: $query = Assistance::join('users', 'assistances.user_id', '=', 'users.id') ->select('assistances.*') ->orderBy('duration between sta
- start_date
- end_date
我想按开始日期和结束日期之间的持续时间对数据顺序进行排序:
$query = Assistance::join('users', 'assistances.user_id', '=', 'users.id')
->select('assistances.*')
->orderBy('duration between start_date and end_date');
;
我怎样才能做到这一点呢?请尝试以下方法-请记住这不是非常有效的
DATEDIFF
返回两个日期之间的天数。您可能还希望使用TIMESTAMPDIFF
,它接受第一个参数,例如'hour',在这里您可以获得更精确的控制
$query = Assistance::join('users', 'assistances.user_id', '=', 'users.id')
->select('assistances.*')
->orderBy(DB::raw('DATEDIFF(start_date, end_date)'))
->get();
也请
使用DB代码>在您的课堂上。请尝试以下方法-请记住这不是非常有效的
DATEDIFF
返回两个日期之间的天数。您可能还希望使用TIMESTAMPDIFF
,它接受第一个参数,例如'hour',在这里您可以获得更精确的控制
$query = Assistance::join('users', 'assistances.user_id', '=', 'users.id')
->select('assistances.*')
->orderBy(DB::raw('DATEDIFF(start_date, end_date)'))
->get();
也请使用DB代码>在您的类中。选择是ASC还是DESC我使用orderByRaw->orderByRaw(DB::raw(“DATEDIFF(开始日期,结束日期)描述”))
选择是ASC还是DESC我使用orderByRaw->orderByRaw(DB::raw(“DATEDIFF(开始日期,结束日期)描述”))