2016-05-04 12 views
2

Ich möchte meine MySql Spalte 'Zeit' Update als Spalte Minus SpalteSatz Spaltenwerte gleich zu columnB minus columnA

Hinweis 'Start_Time' 'END_TIME' sein: END_TIME & Start_Time sind in DATETIME- Format ... .

Dank

+0

Was ist der Datentyp der Spalte - Zeit? –

+0

Datentyp für Zeit Spalte ist nur Zeit –

+0

Also was wird das erwartete Ergebnis sein, wenn die Ausgabe mehr als 24 Stunden oder mehr als 30 Tage ist? –

Antwort

3

versuchen, diese Methode,

SELECT SEC_TO_TIME(TIMESTAMPDIFF(second,Start_Time,End_Time)) --include sec 
or 
SELECT SEC_TO_TIME(TIMESTAMPDIFF(minute,Start_Time,End_Time)*60) --diff in minute 

eg 

SELECT SEC_TO_TIME(TIMESTAMPDIFF(minute,'2016-05-04 10:00:00','2016-05-04 11:29:00')*60) 

Hier TIMESTAMPDIFF(minute die diff in Minuten zurückkehren und mutiple es * 60 Sekunden zu erhalten, und verwenden Sie SEC_TO_TIME von Sekunden zu Zeit zu konvertieren.

+0

gibt es eine Möglichkeit, den genauen Unterschied zu bekommen ... Ich meine, wenn ich abziehen 04:05:34 von 09:00:00 sollte ich 04:54:26 statt 04:54:00 bekommen –

+0

Antwort geändert, verwenden Sie die erste Abfrage, die auch Sekunden enthalten. –

+1

es funktionierte perfekt .... danke @Abdul Rasheed –

0

können Sie TIMESTAMPDIFF Funktion verwenden.

SELECT TIMESTAMPDIFF(minute, '2015-06-01 13:13:55', '2015-06-03 10:15:20') 

SELECT TIMESTAMPDIFF(second, '2015-06-01 13:13:55', '2015-06-03 10:15:20') 

SELECT TIMESTAMPDIFF(hour, '2015-06-01 13:13:55', '2015-06-03 10:15:20') 
0
update table 
set Time = (select 
      to_timestamp(End_Time,'yyyy-mm-dd hh24:mi:ss') - to_timestamp(Start_Time,'yyyy-mm-dd hh24:mi:ss') 
      ); 
Verwandte Themen