Autor Beitrag
saxe66
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 104



BeitragVerfasst: Di 26.10.10 16:16 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 104



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Di 26.10.10 17:30 
Prinzipiell ist "(a>=b)" das gleiche wie "not (a<b)". Vielleicht funktioniert das ;)

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
JVS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: 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#