Stránka 1 z 1

Součet časů v ms access (vyřešeno)  Vyřešeno

Napsal: 23 črc 2007 08:44
od Frantisek Kravar
Potřebuji v ms access sčítat položky času, je-li součet větší než 24 hodin tak se mi to špatne zobrazí. Příklad : Součet hodnot typu čas je 25:30:00 mě se však zobrazí 1:30:00, prostě odhodí násobky 24 hodin. Nevíte prosím někdo jak to udělat aby se výsledek zobrazoval správně. Součty mouhou nabývat jakýchkoli hodnot např. 10000hodin 5minut 30sec (10000:05:30). Dík

Napsal: 23 črc 2007 18:57
od TomTomX
Ahoj Františku,

podle mne to v podstatě funguje dobře - ale ten formát 'čas' je vlastně formát 'datum/čas' a Tobě se pravděpodobně zobrazuje pouze ten čas. Datový formát Datum/čas je obvykle implementován jako desetinné číslo, kde hodnota před desetinnou tečkou je datum (záporným číslem si to teď nebudeme komplikovat) a část za desetinnou tečkou je čas.

Takže - pokud nepřijdeš na to, jak Access donutit formátovat datum/čas tak, aby datum 'nacpal' do hodin, můžeš použít např tento výraz (v tabulce 'Tabulka' je sloupec 'Cas', který se má sečíst):

select cstr(24*int(sum(Cas)) + hour(sum(Cas))) + format(sum(Cas), ':hh:mm')
from Tabulka


Funguje to takto:
1. 24*int(sum(Cas) vezme ze sečteného času pouze celou část a vynásobí to 24 hodinami
2. hour(sum(Cas)) ze sečteného času oddělí hodiny (0-23)
3. číslo ze dvou předcházejících bodů sečte a převede na řetězec
4. k tomu přidá ze sečteného času minuty a vteřiny (ve formátu hh:mm)
..a je to ;-)

Je to tak OK? ;-)

Napsal: 01 srp 2007 15:01
od cukista
Jenom placnu, pac jsem to nezkousel... Mozna by stacilo zmenit format, napada mne neco jako "dd hh:mm:ss" nebo tak nejak....

Napsal: 01 srp 2007 16:30
od TomTomX
...podle popisu problému se mi spíš zdá, že se má všechno přepočítat na čas - tedy počet dní se má vynásobit 24x a přičíst k počtu hodin... škoda, že Frantík nenapsal, jestli mu návrh řešení pomohl :roll:
Tom

Napsal: 21 srp 2007 13:30
od Frantisek Kravar
Jo dobry už mito maka dekuji