2012-03-24 15 views
2

Ich verwende MySQL und ich habe derzeit eine VARCHAR-Spalte, die Zeiten (in Minuten und Sekunden) wie "30:47" und " 00:25 "(25 Sekunden). Wie kann ich es so machen, dass ich Operationen wie SUM() und AVG() für diese Spalte ausführen kann und das Ergebnis zurückbekomme.MySQL Operationen wie 30:47 (30 Minuten und 47 Sekunden)

Also wenn ich AVG() auf "00:35" und "00:45" würde ich "00:40" bekommen. Müsste ich sie zuerst in ein Dezimalformat konvertieren, dann die Operation ausführen und sie dann zurück konvertieren? Oder gibt es einen Spaltentyp, der diese Operationen unterstützt?

+4

Sehr, sehr unangenehm ist wie. Verwenden Sie einfach eine TIME-Spalte. – Corbin

+2

Sie sollten diese Spalte wirklich als 'TIME'-Typ statt als' VARCHAR' speichern. –

+0

Ich kann nicht für diese eine X10000 abstimmen, aber wenn ich es hätte tun können ... – haltabush

Antwort

5

Verwenden Sie einfach eine TIME Spalte. Es wird die meisten Operationen intuitiv unterstützen.

+0

Danke, ich werde das ausprobieren. – Ray

+0

@Ray Ich sollte wahrscheinlich in meiner Antwort erwähnt haben, dass Sie bei Rückgabetypen jedoch vorsichtig sein müssen. Beispielsweise kann ein AVG-Aufruf eine Ganzzahl anstelle eines TIME-Typs zurückgeben. – Corbin

Verwandte Themen