Discussion:
Zeit summieren / addieren
(zu alt für eine Antwort)
Daniel Weiß
2006-06-28 06:33:26 UTC
Permalink
Hallo NG,

ich bin noch sehr unsicher mit Access und habe gleich mein erstes,
wahrscheinlich aber einfaches Problem:

Zeitdaten, genauer die Dauer steht im Format HH:MM:SS in meiner Tabelle.
Wenn ich jetzt eine Abfrage nach der Summe der Dauer starte bekomme ich
Werte von 0,002.... usw.

Wie kann ich ihm das klarmachen?

Danke vorab.
Daniel
Olaf Rabbachin
2006-06-28 06:59:54 UTC
Permalink
Hi,
Post by Daniel Weiß
Zeitdaten, genauer die Dauer steht im Format HH:MM:SS in meiner Tabelle.
Wenn ich jetzt eine Abfrage nach der Summe der Dauer starte bekomme ich
Werte von 0,002.... usw.
Wie kann ich ihm das klarmachen?
bemühe mal groups.google mit "zeit summieren" in dieser Gruppe - ist
regelmäßges Thema.

Bis dann,
Olaf
--
My .02: www.Resources.IntuiDev.com
Peter Doering
2006-06-28 07:16:53 UTC
Permalink
Hallo,
Post by Daniel Weiß
ich bin noch sehr unsicher mit Access und habe gleich mein erstes,
Zeitdaten, genauer die Dauer steht im Format HH:MM:SS in meiner Tabelle.
Wenn ich jetzt eine Abfrage nach der Summe der Dauer starte bekomme ich
Werte von 0,002.... usw.
FAQ 2.10 (www.donkarl.com)

Gruss - Peter
--
Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
Klaus Oberdalhoff
2006-06-28 11:24:57 UTC
Permalink
Hi,
Post by Daniel Weiß
Zeitdaten, genauer die Dauer steht im Format HH:MM:SS in meiner
Tabelle. Wenn ich jetzt eine Abfrage nach der Summe der Dauer starte
bekomme ich Werte von 0,002.... usw.
du tust dir mit Datümmern leichter, wenn du verstehst, wie Access intern das
Datum speichert.

Hier mal wieder meine gesammelten Infos rund um Datum und Uhrzeit:

============

In Access werden die Datumsfelder intern definitv als Zahl Typ Double
gespeichert, wobei der Vorkomma-Anteil (positiv wie negativ) die Anzahl der
Tage seit dem 30.12.1899 bedeuten und der Nachkommateil die "Fraction" des
Tages, d.h. die Uhrzeit. (0,5 = 12 Uhr) Zur Anzeige des Datums rechnet
Access intern das Datum immer um... (D.h. es wird IMMER ein "Zeitpunkt"
gespeichert)

Wenn "NUR" die Uhrzeit abgespeichert wird, ist die Tagesanzahl
(Vorkommateil) gleich 0 und umgekehrt, bei Datum ohne Uhrzeit ist der
Nachkommaanteil immer 0, d.h. Mitternacht. ...

Zweistellig angezeigt wird das Jahr des Datums deswegen, weil Access
standardmäßig (wenn kein Extra-"Format" gesetzt wurde) zur Anzeige des
Datums den Wert, der in der Systemsteuerung unter "Ländereinstellungen" Tab
Datum unter "Kurzes Datumsformat" eingestellt ist, verwendet.

Für diese Umrechnung gibt es diverse accessinterne Datums- und
Uhrzeitfunktionen (siehe Onlinehilfe), als da beispielsweise wären:

DateSerial
TimeSerial
Year
Month
Day
DateDiff
DateAdd
DatePart
Format (Parameter firstFourDays und vbMonday nicht vergessen)
Now
Weekday (Parameter vbMonday nicht vergessen)

=================================
Post by Daniel Weiß
Aber ich bräuchte eine Funktion, die zu einem bestimmten Datum ausrechnet,
in welche KW dieses Datum fällt.
Das geht immer mit dem Format-Statement
Post by Daniel Weiß
Ist es richtig, dass die erste Kalenderwoche immer die erste Woche im Jahr
mit mindestens 4 Tagen ist?
Wann fängt die Kalenderwoche an? Montag, oder Sonntag?
Das ist weltweit nicht einheitlich geregelt.

Für WestEuropa (d.h. zumindest für alle Staaten der EG sowie der Schweiz)
gilt irgendeine ISO-Norm seit den 1970-er Jahren des letzten Jahrtausends


Diese ISO-Norm besagt, daß für alle Staaten, die dieser Norm "beigetreten"
sind, gilt, daß die WochenNr mit der Nummer 1 (In Worten: "eins") die Woche
ist, die vier Tage hat, bzw. (was das Gleiche ist) die den Donnerstag
beinhaltet (vbFirstFourDays). In dieser ISO-Norm ist auch festgelegt, daß
der erste Tag der Woche der Montag (und nicht wie davor der Sonntag) ist.
(vbMonday) Der erste Tag der Woche ist vorallem für Kalenderhersteller
wichtig, da in dieser Norm auch drinsteht, daß der erste Tag der Woche als
erstes in der Kalendertageaufstellung stehen sollte. (also Mo Di Mi ... und
nicht So Mo Di ...)

In den USA gilt beides NICHT, dort ist immer die Woche die Nr 1 (in
Worten:eins), die den ersten Januar beinhaltet und der erste Tag der Woche
ist der Sonntag.

Wie es die anderen Staaten (die z.Tl. noch nach einem ganz anderen Kalender
!!! rechnen wie China oder Israel oder so) halten, ist mir nicht bekannt.
Auch für Rußland und Indien etc. weiß ich es nicht. Wenn du also für deine
Applikation das richtige tun willst, hast du folgende Möglichkeiten:

Du verwendest beim Format immer den Parameter adUseSystem oder du fragst es
explizit in deinem Programm ab oder du weißt, in welcher "Hemisphäre" dein
Programm verwendet wird und verwendest diese Einstellung fix. (ich verwende
z.B. in der KnowHow die europäische Norm fix)
Post by Daniel Weiß
KW = Format(Datum,"ww",2,3)
ist definitiv für Europa und USA falsch, entweder

Europäisch, aber besser Konstantennamen verwenden, also
Post by Daniel Weiß
KW = Format(Datum,"ww", vbMonday, VbFirstFourDays)
KW = Format(Datum,"ww",2,2)
KW = Format(Datum,"ww", VbSunday, VbFirstJan1)
KW = Format(Datum,"ww", 1, 1)
KW = Format(Datum,"ww") - Kurzform da default
KW = Format(Datum,"ww", vbUseSystem, vbUseSystem)
KW = Format(Datum,"ww", 0, 0)
===========================================
ACHTUNG: vbUseSystem ist NICHT die Defaulteinstellung, sondern 1,1 !!!
===========================================


Ebenso findet sich in der KnowHow (oder als neuere Version ein Extrakt in
der Datei ObdKalender.zip bei www.freeaccess.de) ein komplettes
Kalendermodul, mit dem man auch eigene Feier- und Werktagsberechnungen
vornehmen kann. (Beschreibung dazu im Inneren des Moduls
mdlSonstigesDatumUhrzeit)

In diese Gruppe gehört die UmkehrFunktion Fkt_KWMon aus dem Modul
mdlSonstigesDatumUhrzeit, mit deren Hilfe man den Montag einer
(europäischen) Kalenderwoche berechnen kann, das ich aus der Access-FAQ
entlehnt habe ...
--
mfg

Klaus Oberdalhoff ***@gmx.de

Ich beantworte keine NG-Fragen und -Nachfragen per Mail!
Newbie-Info: http://www.doerbandt.de/Access/Newbie.htm
KnowHow-mdb und andere Beispiele: http://www.freeaccess.de
Sofern Access 200x bitte beachten:
http://www.freeaccess.de/MS-Access-Artikel.asp?ID=99

Ich unterstütze PASS Deutschland e.V. (http://www.sqlpass.de)

In der Zwischenzeit schließe ich mich uneingeschränkt dem KB-Hinweis an.
("Ohne Garantie, ist ausgedrückt, oder die impliziert wird, bietet
Microsoft Programmierbeispiele nur für Abbildung. Das enthält aber ist auf
den konkludenten Garantien Merchantability oder Eignung für einen
bestimmten Zweck nicht beschränkt. In diesem Artikel wird vorausgesetzt,
dass von Ihnen mit der Programmiersprache, die demonstriert wird, und den
Tools vertraut, die, um zu erstellen, und Prozeduren zu debuggen, verwandt
werden ist.")
--
mfg

Klaus Oberdalhoff ***@gmx.de

Ich beantworte keine NG-Fragen und -Nachfragen per Mail!
Newbie-Info: http://www.doerbandt.de/Access/Newbie.htm
KnowHow-mdb und andere Beispiele: http://www.freeaccess.de
Sofern Access 200x bitte beachten:
http://www.freeaccess.de/MS-Access-Artikel.asp?ID=99

Ich unterstütze PASS Deutschland e.V. (http://www.sqlpass.de)

In der Zwischenzeit schließe ich mich uneingeschränkt dem KB-Hinweis an.
("Ohne Garantie, ist ausgedrückt, oder die impliziert wird, bietet
Microsoft Programmierbeispiele nur für Abbildung. Das enthält aber ist auf
den konkludenten Garantien Merchantability oder Eignung für einen
bestimmten Zweck nicht beschränkt. In diesem Artikel wird vorausgesetzt,
dass von Ihnen mit der Programmiersprache, die demonstriert wird, und den
Tools vertraut, die, um zu erstellen, und Prozeduren zu debuggen, verwandt
werden ist.")
Lesen Sie weiter auf narkive:
Loading...