Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Datum als Integer und zurück (https://www.delphipraxis.net/198565-datum-als-integer-und-zurueck.html)

franktron 14. Nov 2018 10:09

Datum als Integer und zurück
 
Ich habe einen Alten Code (Delphi 2010 32 Bit)

Delphi-Quellcode:
cbTargetDate.Date   := Trunc(TheOperation^.Process^.TargetDate);
cbTargetDate.Date is TDateTime
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)

DieDolly 14. Nov 2018 10:12

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.

franktron 14. Nov 2018 10:24

AW: Datum als Integer und zurück
 
So wird das im Alten Programm gespeichert

Delphi-Quellcode:
 DBProcess.TargetDate   := Trunc(cbTargetDate.Date);

DieDolly 14. Nov 2018 10:28

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.

franktron 14. Nov 2018 10:31

AW: Datum als Integer und zurück
 
Der Aufbau ist leider nicht zu erkennen das ist ein Zahl die keine Aufbau vermuten lässt.

DieDolly 14. Nov 2018 10:34

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.

Uwe Raabe 14. Nov 2018 10:36

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?

franktron 14. Nov 2018 10:44

AW: Datum als Integer und zurück
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1418055)
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?

Das zeigt der Debugger so an

DieDolly 14. Nov 2018 10:51

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 :)

franktron 14. Nov 2018 11:06

AW: Datum als Integer und zurück
 
So jetzt noch am Detaillierter

Delphi-Quellcode:
Proccess.TargetDate:=Query.FieldByName('TargetDate').AsInteger;
Das ist der Code für das Auslesen von der DB TargetDate ist TDateTime
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 13:57 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz