Autor | Zpráva | ||
---|---|---|---|
jiribulan Profil * |
#1 · Zasláno: 9. 8. 2012, 15:17:20
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 |
#2 · Zasláno: 9. 8. 2012, 15:59:51
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 * |
#3 · Zasláno: 11. 8. 2012, 11:29:31
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 |
#4 · Zasláno: 11. 8. 2012, 12:19:55
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. |
||
Časová prodleva: 12 let
|
0