Access verlinkte Tabelle, query by date

Hi !

Ich habe eine Access Datenbank, von der aus ich Querys auf einer verlinkten Tabelle ausführe. Die verlinkte Tabelle ist eine SQLBase/Gupta Datenbank und wird über eine ODBC Datenquelle verknüpft.

Nun führe ich folgenden Code in einer Abfrage aus:

select \*
from historie
where
datevalue([datum]) between cdate('2009-11-01') and cdate('2009-11-05')

Das Datumsfeld ist vom Typ DateTime.

Allerdings liefert mir die Between Anweisung alles Mögliche an Datumsangaben. Darunter sind Einträge, die im Wertebereich liegen, allerdings auch jede Menge, die es nicht sind. Ich bin mir allerdings sicher, dass between geparst und verarbeitet wird, weil ohne 28k Einträge angezeigt werden und mit between nur 174.

Interessanter wird es sogar noch, wenn ich mit WinSQL über dieselbe Datenquelle auf dieselbe Datenbank zugreife und das SQLBase Äquivalent dazu ausführe:

select \* 
from historie 
where 
@datevalue(datum) between '2009-11-01' and '2009-11-05'

Denn dann funktioniert alles wie gewünscht. Ich vermute also, dass ich irgendeine Datumskonvertierung oder so verfehlt habe. Bitte helft mir auf die Sprünge.

Mfg
RW

Hallo,

Ich habe eine Access Datenbank, von der aus ich Querys auf
einer verlinkten Tabelle ausführe. Die verlinkte Tabelle ist
eine SQLBase/Gupta Datenbank und wird über eine ODBC
Datenquelle verknüpft.

Nun führe ich folgenden Code in einer Abfrage aus:

select *
from historie
where
datevalue([datum]) between cdate(‚2009-11-01‘) and
cdate(‚2009-11-05‘)

Das Datumsfeld ist vom Typ DateTime.

ich kenne jetzt nicht das Verhalten des ODBC-Treibers für dieses DB-System.

Aber fragwürdig ist der Vergleich zwischen „datevalue“ und „cdate“.

Datevalue liefert einen Long-wert, cdate ein Datum.

Access-mäßig würde das so lauten:

select *
from historie
where
[datum] between #2009-11-01# and #2009-11-05#

auf Deine Verhältnisse gemünzt evtl:

select *
from historie
where
[datum] between cdate(‚2009-11-01‘) and cdate(‚2009-11-05‘)

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!