Einzelnen Beitrag anzeigen

Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

AW: Datumsfilter - Daten(Datums) verrechen

  Alt 8. Nov 2010, 13:37
Hallo,

das Problem, dass bei Deinem Beispiel falsche Werte herauskommen liegt daran:
Delphi-Quellcode:
const
 DAY_IN_MS = 86400000;
Die Funktion Now liefert Dir einen Wert zurück, der die Tage seit dem 30.12.1899 angibt (Der Nachkommaanteil ist die Zeit, wobei 1 Std=1/24 enstpricht). Für Heute enstspricht der Now-Wert 40490. Wenn Du jetzt davon die Konstante DAY_IN_MS abziehst, bist Du irgendwo im Jahre -250.000.

Für Dein Beispiel genügt es, dass Du 1 Tag abziehst. Dies machst Du ja indirekt mit Deinem 2. Beispiel, da der 31.12.1899 den Wert 1 hat (ausserdem hast Du dir die Stringumwandlung gespart).

Delphi-Quellcode:
procedure foo;
var filter : String
const DAY24 = 1.0;
begin
  if choise = myType24Hour then
  begin
    filter := 'Datum <= '+ FormatDateTime('yyyy-mm-dd hh:mm', (now - DAY24));
  end;
end;
  Mit Zitat antworten Zitat