更新多个时间戳字段 Laravel 或 Eloquent

Update multiple timestamp fileds Laravel ORM Eloquent

为了简单起见,我有字段 (timestamp) started_at(int) duration 并且我有 ID 为 [1, 2, 3] 的行。当我删除第一个对象时,我想更新所有下一行中的 started_at 字段(在我的示例中是第 2 行和第 3 行)。

我试过这样做:

Model::where('id', '>', $myObject->id)
     ->update([
         'started_at' => DB::raw('started_at - ' . $myObject->duration),
     ]);

但是这个构造将我的字段设置为 0000-00-00 00:00:00。我该如何解决?

我认为问题出在您的 SQL 语法上 - 您不能那样减去句点 - 您必须使用 DATE_SUB function 或 INTERVAL 关键字(对于 MySQL)

更新:您还可以将该列中的时间戳存储为一个简单的数字。在这种情况下,算术运算将起作用。