如何从数据库中的相同数据中获取第一个数据和最后一个数据?

时间:2017-06-16 06:21:58

标签: php laravel laravel-5.3

我想从此数据库输出时间和超时。 enter image description here

所以我希望获得2017-06-13和2017-06-15日期的第一个数据和最新数据。 我怎么能用Laravel 5.3做到这一点?

3 个答案:

答案 0 :(得分:1)

这可能会对你有用:

DB::table('emp')
  ->select(DB::raw("MIN(`time`) AS `time_in`, MAX(`time`) AS `time_out`"))
  ->where('date', '2017-06-13')
  ->get();

输出:

{
    time_in: "19:38:33",
    time_out: "22:14:10"
}

答案 1 :(得分:0)

尝试以下代码:

$attendancehours = DB::select(
    DB::RAW('TIMESTAMPDIFF(HOUR,CONCAT(in_date," ",in_time),CONCAT(out_date," ",out_time)'))->
    table('staff_attendances')->
    whereBetween('in_date', array($date1, $date2))->
    where('id', $sID)
    ->get();

答案 2 :(得分:0)

您可以按日期和时间列订购表格,然后使用Eloquent使用 - > first()和 - > last()使用这些方法。

$collection = BiometricsAttendance::where('emp_id', $emp)->whereBet‌​ween('date', [$start, $end])->groupBy('date')->orderBy('time', 'asc');

$timein = $collection->first();

$timeout = $collection->last();