Как остановить время вычитания на 00:00:00 в Laravel - PullRequest
0 голосов
/ 21 сентября 2019

Я использую запрос, который вычитает время.Проблема в том, что когда он достигает 00:00:00, он не прекращает вычитать и начинает идти в отрицательном виде, как - 00:20:00

Sale::where('date','=',$current->toDateString())
      ->where('time','<=',$current->toTimeString())
      ->update(['duration' => DB::raw('DATE_SUB(duration, INTERVAL 1 MINUTE)')]);

Я хочу остановить его на 00:00:00

1 Ответ

1 голос
/ 21 сентября 2019

Попробуйте:

Sale::where('date', $current->toDateString())
    ->where('time', '<=', $current->toTimeString())
    ->update([
        'duration' => DB::raw('GREATEST(DATE_SUB(duration, INTERVAL 1 MINUTE), TIME(0))')
    ]);

Это ограничит минимально возможное значение времени до 00:00:00, добавив функцию GREATEST () MySQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...