![]() |
Datum als Integer und zurück
Ich habe einen Alten Code (Delphi 2010 32 Bit)
Delphi-Quellcode:
cbTargetDate.Date is TDateTime
cbTargetDate.Date := Trunc(TheOperation^.Process^.TargetDate);
TargetDate ist Integer Jetzt habe ich einen Neuen Code in XE10.2 gemacht und da kommt nur noch müll raus Datum > Jahr 4000 Start:=Trunc(Operationen.Items[i].StartDate); Selbe Konstellation wie in Delphi 2010 Was ist da der unterschied P.S. die Daten (Datum als Integer kommen von eine MS SQL Server) |
AW: Datum als Integer und zurück
Wie sieht der Integer aus? Ist das im ISO-Format yyyymmddd? Wenn ja musst du das erst auseinandernehmen und daraus dann einen TDateTime bauen.
|
AW: Datum als Integer und zurück
So wird das im Alten Programm gespeichert
Delphi-Quellcode:
DBProcess.TargetDate := Trunc(cbTargetDate.Date);
|
AW: Datum als Integer und zurück
Das beantwortet leider nicht die Frage, wie der Integer genau aufgebaut ist.
Es kann yyyymmdd in jeglicher Variante sein oder auch ein deformierter Timestamp. Zum Umrechnen in einen TDate muss man jetzt glaube ich genau wissen, wie der Integer aussieht. |
AW: Datum als Integer und zurück
Der Aufbau ist leider nicht zu erkennen das ist ein Zahl die keine Aufbau vermuten lässt.
|
AW: Datum als Integer und zurück
Wenn das nicht gerade ein Standardformat ist könnte das Umformatieren schwierig werden.
Vielleicht kann ja irgendein anderer helfen. |
AW: Datum als Integer und zurück
Der Ganzzahlanteil von TDateTime gibt die Anzahl Tage seit dem 30.12.1899 an. Das hat sich zwischen D2010 und 10.2 nicht geändert. Eventuell gibt es Diskrepanzen in der folgenden Verarbeitung bis zur Anzeige des Wertes?
|
AW: Datum als Integer und zurück
Zitat:
|
AW: Datum als Integer und zurück
Nimm das bitte nicht persönlich. Aber es wäre für alle gut, wenn man dir nicht alles aus der Nase ziehen muss :)
|
AW: Datum als Integer und zurück
So jetzt noch am Detaillierter
Delphi-Quellcode:
Das ist der Code für das Auslesen von der DB TargetDate ist TDateTime
Proccess.TargetDate:=Query.FieldByName('TargetDate').AsInteger;
z.b. Query.FieldByName('TargetDate').AsIntege hat 1041824 was 31.05.4752 ergibt Das kann doch nicht richtig sein P.S. ab und zu kommen vernünftige Werte die aber alle in der Zukunft liegen was in der DB nicht sein kann da alle Daten in der Vergangenheit liegen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz