2017-05-25 15 views
0

ich die Spalten late_am_in summieren möchten, late_am_out, late_pm_in, late_pm_out und das Ergebnis Spalte total_hours.mysql, wie die Zeit in Spalten summieren

SEC_TO_TIME(SUM(TIME_TO_SEC(STR_TO_DATE(late_pm_in, '%H:%I') - TIME_TO_SEC(STR_TO_DATE 
(late_pm_out, '%H:%I')))) AS total_hours 

Der Datentyp meiner Spalten ist Varchar.

danke!

sum time in mysql

Ich möchte wie dieses Ziel erreichen: want to achieve

+0

Können Sie die gewünschte Ausgabe teilen Hier? – VeeK

+0

Sollte die Subtraktion nicht umgekehrt sein? Subtrahieren Sie aus, um die Menge an Zeit zu erhalten, in der sie waren. – Barmar

+0

hi Ich möchte nur die Gesamtstunden durch Hinzufügen der Spalte: spät_am_in, spät_am_out, spät_pm_in, spät_pm_out. es ist möglich in mysql? –

Antwort

0

Versuchen Sie dies funktioniert.

SEC_TO_TIME((TIME_TO_SEC(STR_TO_DATE(late_am_out, '%H:%i')) - TIME_TO_SEC(STR_TO_DATE(late_am_in, '%H:%i'))) + (TIME_TO_SEC(STR_TO_DATE(late_pm_out, '%H:%i')) - TIME_TO_SEC(STR_TO_DATE(late_pm_in, '%H:%i')))) AS total_hours 

Heres, wie Sie die Tabelle aktualisieren, kann die Gesamtstunden berechnen

Update Test SET total_hours = SEC_TO_TIME((TIME_TO_SEC(STR_TO_DATE(late_am_out, '%H:%i')) - TIME_TO_SEC(STR_TO_DATE(late_am_in, '%H:%i'))) + (TIME_TO_SEC(STR_TO_DATE(late_pm_out, '%H:%i')) - TIME_TO_SEC(STR_TO_DATE(late_pm_in, '%H:%i')))) 

Heres, wie Sie die Gesamtstunden berechnen können, wenn die Werte Einfügen

INSERT INTO Test 
    (`id`, `late_am_in`, `late_am_out`, `late_pm_in`, `late_pm_out`, `total_hours`) 
VALUES 
    (7, '14:15', '16:15', '18:15', '19:19', SEC_TO_TIME((TIME_TO_SEC(STR_TO_DATE(late_am_out, '%H:%i')) - TIME_TO_SEC(STR_TO_DATE(late_am_in, '%H:%i'))) + (TIME_TO_SEC(STR_TO_DATE(late_pm_out, '%H:%i')) - TIME_TO_SEC(STR_TO_DATE(late_pm_in, '%H:%i'))))) 
; 
+0

Hallo Es funktioniert nicht. Bitte beachten Sie, dass meine Spalten Varchar sind. Danke –

+0

Natürlich funktioniert es, das Problem, das Sie haben, ist, dass Sie leer late_am_in und late_am_out haben. Die time_to_sec für diese sind null und daher ist der Gesamtoutput für diese Zeile null und Sie können nicht null summieren. – noyanc

+0

Dort gehen wir es jetzt versuchen. keine Nullen mehr. Das str_to_date wird damit umgehen. – noyanc

Verwandte Themen