按持续时间 start_date 和 end_date 之间的数据顺序排序
Sorting data order by duration between start_date and end_date
我正在使用 Laravel 7。我有一个 table 命名的辅助 有一些列和这两列:
- start_date
- end_date
我想根据 start_date 和 end_date 之间的 持续时间 对数据进行排序:
$query = Assistance::join('users', 'assistances.user_id', '=', 'users.id')
->select('assistances.*')
->orderBy('duration between start_date and end_date');
;
我该怎么做?
请尝试以下操作 - 请记住,这不是非常有效
DATEDIFF
returns 两个日期之间的天数。您可能还想使用 TIMESTAMPDIFF
,它接受第一个参数,例如 'hour',您可以在其中获得更精细的控制
$query = Assistance::join('users', 'assistances.user_id', '=', 'users.id')
->select('assistances.*')
->orderBy(DB::raw('DATEDIFF(start_date, end_date)'))
->get();
也请在您的 class 中 use DB;
。
我正在使用 Laravel 7。我有一个 table 命名的辅助 有一些列和这两列:
- start_date
- end_date
我想根据 start_date 和 end_date 之间的 持续时间 对数据进行排序:
$query = Assistance::join('users', 'assistances.user_id', '=', 'users.id')
->select('assistances.*')
->orderBy('duration between start_date and end_date');
;
我该怎么做?
请尝试以下操作 - 请记住,这不是非常有效
DATEDIFF
returns 两个日期之间的天数。您可能还想使用 TIMESTAMPDIFF
,它接受第一个参数,例如 'hour',您可以在其中获得更精细的控制
$query = Assistance::join('users', 'assistances.user_id', '=', 'users.id')
->select('assistances.*')
->orderBy(DB::raw('DATEDIFF(start_date, end_date)'))
->get();
也请在您的 class 中 use DB;
。