Moin,
hab mal ne Frage und zwar arbeite ich einer Abfrage mit zwei Zeitangaben.
hab das Feld [von] und das Feld [bis] beide vom Datentyp Datum.
so das Problem besteht im folgendem:
es gibt keine 24:00 sondern nur 00:00, und wenn ich dann von 12:00 - 00:00 rechne, haut er mir -12Std raus, was ja falsch ist, sollte +12Std sein.
Hab das nun auf 23:59 gesetzt, dann klappt es richtig, nur hab ich dann statt +12Std, +11,9833...Std. Muss ich dann nachträglich wieder aufrunden.
Gibt es da nicht ne einfachere Methode?
Grüße
Hallo,
versuch mal in der Abfrage:
Dauer: ZDate(Wenn([bis]<[von];[bis]+1-[von];[bis]-[von]))
sollte auch dann funktionieren wenn du 00:00 als Endzeit eingibst - und benötigt auch keine Rundung ;D
HTH
Der Datentyp Date beinhaltet Datums- und Zeitangaben. Wenn man die Datumsangabe nicht per Formatierung ausblendet, sondern einfach einbezieht, ergibt sich eine einfache Subtraktion, so wie man das erwartet:
' im Direktbereich
?#8/31/2011 0:00:00# - #8/30/2011 12:00:00#
Wenn man sich erschließt, dass ein Date-Wert intern eine Double-Zahl enthält, wobei die Ganzzahlen die Tage seit dem 30.12.1899 und die Dezimalzahlanteile Tagesbruchteile sind (1 Stunde = 1/24), ist der nachfolgende Ausdruck gleichwertig zum obigen:
?#8/31/2011 0:00:00# * 1 - #8/30/2011 12:00:00# * 1
Die Möglichkeit, per Multiplikation mit 1 aus einem Date-Wert eine Zahl zu erzeugen, unterstreicht den Zahlencharakter eines Date-Wertes.
Der Differenzwert aus obiger Berechnung von 0,5 entspricht einem halben Tag oder 12 Stunden, je nach dem, wie man es sehen will, übrigens auch völlig ohne Runden.
MfGA
ebs