převedení sekund na minuty a hodiny   zodpovězená otázka

SQL, Databáze

Ahoj, tak jsem se zase zasekl. Vyřešil jsem problém se součtem času

http://www.vbnet.cz/forum-tema--1643-sc_...

Ale teď se mi něják nedaří přijít na to, jak převést sekundy na normální časovou hodnotu. Projížděl jsem funkci dateAdd ale nic jsem nenašel.Nepodařilo se mi toho ani moc vygooglit. Je v SQL serveru 2000 vůbec nějáká funkce, která by převedla sekundy na čas?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak po době přemýšlení a pokusů jsem něco vyplodil. Tady je výsledek:

SELECT jmeno,

--=====hodiny=====

convert(varchar,(sum(datediff(s,cas_do,cas_od))/-3600))+':'+

--=====minuty=====

convert(varchar,(sum(datediff(s,cas_do,cas_od))-(convert(int,sum(datediff(s,cas_do,cas_od))/-3600))*-3600)/-60)+':'+

--=====sekundy=====

convert(varchar,(sum(datediff(s,cas_do,cas_od)*-1))-

(((sum(datediff(s,cas_do,cas_od))/-3600)*3600)+

(((sum(datediff(s,cas_do,cas_od))-(convert(int,sum(datediff(s,cas_do,cas_od))/-3600))*-3600)/-60)*60)))

AS čas

FROM tb_stavy

GROUP BY jmeno

Jde o to že odečtu od sebe 2 časy a výsledek který je v sekundách převedu na hodiny,minuty a sekundy.

Na varchar to převádím proto, abych mohl doplnit dvojtečky.

Má to nějáký mouchy a to sice že pokud jsou minuty nebo sekundy menší než 10 zobrazí se pouze jedno číslo (chybí počáteční nula) ale jinak to funguje ok.

Výsledek jsou 2 sloupce (jméno a čas náležící ke jménu)

Ale je mi jasný že to není moc ideální. Není to přehledý (ty závorky jsou vyloženě hnus) a bůh ví jaký to bude mít vliv na výkon. Prozatím to musím použít když nemám nic jiného, ale pokud by někdo věděl jak lépe převést sekundy na hodiny:minuty:sekundy rád uvítám jakoukoliv radu:)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Já bych to hlavně dělal až na klientovi a ne v databázi. Databáze provádí operace s daty, ale neměla by je formátovat, to už je věc prezentační vrstvy.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback