Permalänk
Medlem

Mysql - problem med tid

Hej
Jag har lite problem med att sortera efter tid i min tabell.
Jag har tid i formatet:
2:21:40.0
och
30:05.6

Det första på 2h och den andra på 30min

Om jag bara sorterar på "tid" så kommer 2:21:40.0 före 30:05.6 fastän 30:05.6 är lägre.

Hur gör man för att mysql ska förstå skillnaden?

/Niclas

Permalänk
Medlem

Ett alternativ är att du sparar tiden som sekunder, då är det inga problem att sortera den

Permalänk
Medlem

Tror inte du kan få mysql att förstå att det är så du vill sortera, som det är nu så är ju 2 mindre än 3.

Gör som drewi sa och spara tiden som antalet sekunder. Dela sedan upp det med en funktion i sekunder minuter och timmar.

Visa signatur

ASRock p67 extreme 4 | OCZ 240gb SSD + 320GB WDC + 1TB WDC GP | Intel Core i7 2600k | Nvidia Geforce GTX970 | 16gb Crucial Ballistix | Antec HC pro 1200w | Fractal define R2

Permalänk
Medlem

Om tiden är sparad som en date/time-typ så bör MySql inte ha några problem att sortera den. Om kolumnen innehåller sträng-data så har du sparat den i fel typ..

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

använd rätt datatyp på columnen så går det fint att sortera! datetime ska du köra med!

Permalänk
Medlem

Håller med tidigare kommentarer förutom dom som tycker du ska köra med en datetime-datatyp. Det är ju tidåtgång och inte tidpunkt du ska spara och då räcker det fint med en int eller en bigint (båda unsigned) om du ska ha subsekundsprecision. Då kan du sortera resultaten direkt i MySQL och sen sköter du konvertering till läsbar form i presentationslagret.