Как посчитать две связанные даты в Laravel с помощью Query Builder? - PullRequest
3 голосов
/ 17 января 2020

У меня есть этот список дат

enter image description here

Я хочу посчитать время, которое больше 24 часов между каждой датой в строке ... попробовал с этим ..

$tiempo1  = DB::table('incidencia_tiempo')
            ->whereTime('time', '>', '0000-00-00 24:00:00')
            ->count();

Между временем и созданным в ... Я хотел бы посчитать ... если между двумя часами часы больше 24 часов, то добавьте +1 к количество

Я должен сделать сравнение с созданным_ временем и временем, и я не знаю, как

Ответы [ 4 ]

1 голос
/ 17 января 2020

Используйте TIMESTAMPDIFF(), чтобы получить время между двумя датами,

Если вы хотите посчитать максимум time, чем created_at 24 часа

$count  = DB::table('incidencia_tiempo')
            ->where(DB::raw('TIMESTAMPDIFF(HOUR, time, created_at)'), '>', 24)
            ->count();

, если хотите посчитать разницу во времени между двумя датами, превышающими 24 часа:

$count  = DB::table('incidencia_tiempo')
            ->where(DB::raw('ABS(TIMESTAMPDIFF(HOUR, time, created_at))'), '>', 24)
            ->count();
0 голосов
/ 17 января 2020

Попробуйте этот метод для сравнения и подсчета дат

$text_count = Text::whereBetween('created_at', [$date1, $date2])->count();
0 голосов
/ 17 января 2020

Прежде всего вы должны выполнить простой запрос для получения всех данных, таких как

$tiempo1  = DB::table('incidencia_tiempo')->get();

и добавить один l oop для этих данных запроса

$count = 0;
foreach($tiempo1 as $time) {
  $start  = new Carbon($time->time);
  $end    = new Carbon($time->created_at);
  $hours = $start->diff($end)->format('%H');

  if ($hours > 24){
    $count++;
  }
}

надеюсь, что это будет помощь:)

0 голосов
/ 17 января 2020

что означает ваш год время превышает 24 часа ?

...