2017-09-24 2 views
0

Ich möchte eine Spalte mit einem Zeitunterschied zwischen der aktuellen Uhrzeit und einem Datensatz in derselben Tabelle aktualisieren.Aktualisieren einer Spalte mit der Zeitdifferenz zwischen der aktuellen Uhrzeit und einem Datensatz in derselben Tabelle

Eigentlich in dieser Tabellenspalte To sollte NOW() sein und Diffs sollte der Unterschied zwischen From und To sein:

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

Wenn ich diese Abfrage versucht, ich ein paar Fehler habe:

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

Ich rate Ihnen, reservierte Wörter wie 'TO' zu vermeiden, die durch andere englische Wörter wie' UNTIL' ersetzt werden können – sagi

Antwort

1

Warum verwenden Sie eine Unterabfrage?

Wenn das die Logik, die Sie wollen, dann:

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

zuordnen NOW() eine Variablen dann die time mit Variable aktualisieren:

update_time=now() 

nun wie folgt aktualisiert:

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

Ich hoffe, Ihnen zu helfen.

Verwandte Themen