Autor Zpráva
jiribulan
Profil *
Pomůže někdo? Potřebuju zaokrouhlit správně časový výsledek na setiny sekundy. Použil bych fci round(x,2). Ale když ji použiju na výsledek funkce timediff, tak to nefunguje vůbec. Když ji použiju na jednotlivé hodnoty, tak nedojde k matematickému zaokrouhlení, ale k useknutí řetězce (tedy spíš FLOOR než ROUND)

SELECT TIMEDIFF('2008-12-31 23:59:59.000001',
-> '2008-12-30 01:01:01.000002');
-> '46:58:57.999999'

Děkuju za pomoc. Má se na zaokrouhlování časů používat jiná funkce?
Kajman
Profil
Možná by šlo převést čas na číslo, zaokrouhlit a převést zpět.

SELECT time(round(timediff('2008-12-31 23:59:59.000001', '2008-12-30 01:01:01.000002')+0,2));
jiribulan
Profil *
Kajman:

Ještě jsem to špatně popsal. Ve své databázi to mám uložené právě jako DECIMAL(20,6), nikoliv jako datum. Když použiju timediff, tak se to samo na čas převede.

A s tím souvisí druhá otázka, jakmile použiju GROUP BY v selectu, tak se z výsledného času vyhodí mikročas! To mě úplně dostalo. Existuje k tomu nějaký důvod?
Kajman
Profil
jiribulan:
Když použiju timediff, tak se to samo na čas převede.

Ale to přece na tom zaokrouhlování nic nemění.

Existuje k tomu nějaký důvod?

To se zeptejte tvůrců na dev.mysql.com.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: