Hallo Leute,
grundsätzlich muss bei der Abfrage über LocalSQL unterschieden werden, ob man per Parameter abfragt oder nicht:
Delphi-Quellcode:
begin
with Query do
begin
SQL.Text := '
SELECT * FROM T1 WHERE ts = :ts';
Params.ParamByName('
ts').AsDateTime := StrToDate('
2006-12-21') + StrToTime('
12:08:04');
Open;
end;
with Query do
begin
SQL.Text := '
SELECT * FROM T1 WHERE CAST(ts AS TIME) = ''
12:08:04''
'
+ '
AND CAST(ts AS DATE) = ''
21.12.2006''
';
Open;
end;
end;
Die Datum- und Zeit-Literale bei der Parameterbesetzung richten sich nach den Ländereinstellungen des Benutzers. Die Anzeige von von Date- und Time-Feldern über die
BDE erfolgt nach den gleichen Regeln, TimeStamp-Felder (@) werden im Format "TIME, DATE" angezeigt. Allerdings müssen die Literale bei der LocalSQL-Abfrage gemäß den Vorgaben der
BDE-Konfiguration erfolgen. Diese unterscheidet sich oft von den Systemeinstellungen.
Ansonsten gilt immer noch das, was ich in Beitrag #12 geschrieben habe.
Freundliche Grüße