Součet časů v ms access (vyřešeno) Vyřešeno
-
- nováček
- Příspěvky: 12
- Registrován: červenec 07
- Pohlaví:
- Stav:
Offline
Součet časů v ms access (vyřešeno) Vyřešeno
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
Naposledy upravil(a) Frantisek Kravar dne 21 srp 2007 13:32, celkem upraveno 2 x.
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?
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?
-
- nováček
- Příspěvky: 12
- Registrován: červenec 07
- Pohlaví:
- Stav:
Offline
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 2
- 1035
-
od Myerina
Zobrazit poslední příspěvek
30 led 2024 08:44
-
-
Součet hodnot s prázdnou vedlejší buňkou Příloha(y)
od Karrex » 22 kvě 2023 17:00 » v Kancelářské balíky - 7
- 2061
-
od elninoslov
Zobrazit poslední příspěvek
23 kvě 2023 22:38
-
-
- 7
- 1185
-
od Gerete
Zobrazit poslední příspěvek
23 led 2024 21:27
-
- 7
- 1471
-
od atari
Zobrazit poslední příspěvek
28 lis 2023 11:26
-
- 0
- 816
-
od _FalcoN_
Zobrazit poslední příspěvek
22 kvě 2023 19:21
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti