Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#29

Re: Zeit/Datumswert mit einer Tabelle vergleichen

  Alt 12. Dez 2006, 15:17
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
  Mit Zitat antworten Zitat