如何在Laravel中的00:00:00停止时间减法

时间:2019-09-21 15:25:09

标签: laravel laravel-5 eloquent

我正在使用减去时间的查询。问题是,当到达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 个答案:

答案 0 :(得分:1)

尝试一下:

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

这将通过添加assign MySQL函数将可能的最低时间值限制为00:00:00。