简单来说,我有字段(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
。我该如何解决?
答案 0 :(得分:1)
我认为问题在于您的SQL语法 - 您不能减去这样的句点 - 您必须使用DATE_SUB function或INTERVAL关键字(对于MySQL)
更新:您还可以将该列中的时间戳存储为简单数字。在那种情况下,算术运算将起作用。