使用当前时间与同一表中的记录之间的时差更新列

时间:2017-09-24 13:19:28

标签: mysql sql-update

我想更新当前时间与同一表中记录之间的时差的列。

实际上,此表格To列应为NOW(),而Diffs应为FromTo之间的差异:

| ID |       Froms      |    To    |     Diffs  |
+----+------------------+----------+------------+
| 1  |  15:15:59.00000  |   NULL   |     NULL   |
+----+------------------+----------+------------+

当我尝试这个查询时,我遇到了一堆错误:

UPDATE dailyHours 
SET Diffs = (SELECT TIMEDIFF(TIME(NOW()), (SELECT Froms FROM dailyHours WHERE To is NULL)))
WHERE To IS NULL

2 个答案:

答案 0 :(得分:1)

为什么使用子查询?

如果这是你想要的逻辑,那么:

update dailyHours
   set Diffs = timediff(time(now()), Froms)
   where `to` is null;

答案 1 :(得分:0)

NOW()分配给变量,然后使用变量

更新time
update_time=now()

现在更新如下:

UPDATE dailyHours SET Diffs = timed(update_time,Forms) WHERE `To` is NULL;

我希望能帮助你。