Entwickler-Ecke

Datenbanken - Datumvergleich in Access-Tabellen


saxe66 - Di 26.10.10 16:16
Titel: Datumvergleich in Access-Tabellen
Hallo an alle,

bin am Verzweifeln mit diesen idiotischen Access-Datumsformaten.
Habe in einer Tabelle ein Datumsfeld (Typ Datum kurz) definiert.
Dort liegen bspw. Datumswerte vom 01.10.2010 bis zum 31.10.2010.
Versuche nun alle Datensätze vom ersten bis letzen Tag auszulesen mit
select * from datenbank where datum>=#2010/10/01# and datum<=#2010/10/31#.
Das >= funktioniert aber das <= nicht, heißt ich bekomme alle Werte bis zum 30.10., der 31.10. wird ignoriert !

Wrer hat den entscheidenden Tipp für mich ???

Danke schonmal ...


delfiphan - Di 26.10.10 16:31

Ich kenne Access nicht gut aber ist der Datentyp nur ganztägig? Vielleicht versuchst du's mal mit strikt kleiner als der nächste Tag...


saxe66 - Di 26.10.10 16:45

Durch Experimentieren weiß ich, dass der 31.10. mitgeliefert wird, wenn ich als Enddatum den 01.11. angebe.
Es kann doch aber nicht sein, dass der Vergleichsoperator >= offensichtlich verwendbar ist, der Vergleichsoperator <= jedoch nicht.
Oder gibt es speziell bei Access andere, die man benutzen muss.

Danke ...


Xion - Di 26.10.10 17:30

Prinzipiell ist "(a>=b)" das gleiche wie "not (a<b)". Vielleicht funktioniert das ;)


JVS - Mi 09.03.11 21:09

Datumsfelder enthalten keine Ganzzahlen, ihr Kommateil ist der Zeitanteil(Std,Min).
Hast du also im Datenfeld einen Zeitstempel vom 31.10.2010 so ist dieser mit Sicherheit GRÖSSER als #2010-10-31#,
denn #2010-10-31# bedeutet 31.10.2010 0:00 Uhr.

Also im SQL-Statement wie folgt

int(datum)>=#2010/10/01# and int(datum)<=#2010/10/31#

oder schneller

int(datum) between #2010/10/01# and #2010/10/31#