PDA

View Full Version : CPYF und das liebe Datum



camouflage
23-06-19, 11:49
Hi @ll,

Möglicherweise schon Vorboten beginnender Demenz ...

Mach ich heut doch einen CPYF mit *map/*drop auf eine neue Record-Definition mit neuen Datumsfeldern. Kann mir jemand sagen, warum diese mit dem Tagesdatum initialisiert werden? Ich möchte das nicht haben, *loval ist gewünscht.

Danke und schönes WE.

Fuerchau
23-06-19, 12:55
Das liegt am CPYF, der da wohl Standards setzt.
Mache einen CREATE TABLE .... MYDATUM DATE NOT NULL WITH DEFAULT ) und einen

insert into mytable (f1, f2, )
values (select f1, f2, ...) from OldTable

Nur dann hast du alles sleber im Griff. DEFAULT ist in diesem Fall der MinValue.

camouflage
24-06-19, 07:06
Merci Baldur,

Was mich vor allem störte ist, dass ich keinen Weg gefunden habe dieses Tagesdatum beim CPYF zu verhindern. SQL ist natürlich der andere Weg, nur in diesem Fall hat halt die gute, alte DDS herhalten müssen.

Fuerchau
24-06-19, 08:41
Ggf. hilft da auch ein DFTVAL('0001-01-01').

ExAzubi
24-06-19, 10:56
Wenn kein Default angegeben wurde, sowohl bei einer create Table als auch DDS, woher soll das arme cpyf Wissen was du möchtest? Du möchtest *loval andere immer dem ersten Januar des Jahres und wieder rum andere den 01.01.1972...

Ich finde Feldmanipulationen zum Daten kopieren gehören in ein Programm oder zumindest in ein vernünftiges SQL Statement.
Besser aber bei der Tabellendefinition de DEFAULT Werte angeben...

Radinator
25-06-19, 13:54
Und ich dachte schon das Aufteilen der Daten (des Datums) in 3 Felder (Tag, Monat und Jahr) hat heute keine Vorteile mehr ;D *ganz dick grins*

Fuerchau
25-06-19, 15:40
Dafür kenne ich aber heute genug Nachteile.

Radinator
26-06-19, 06:53
Tja. Ich auch :D

Das Problem ist nur, dass es fast ein Ding der Unmöglichkeit ist ein gesamtes ERP System, welche sich über die letzten 30 entwickelt hat, mit 1 oder zwei Programmierer von "Datum in Tag, Monat und Jahr aufgeteilt" in "Datum als Datum-Feld" umzustellen. Also in allen Datenbanken die Felder umstellen. Und das in ~600 Dateien und den Programmen.

Ich mein gut, bisher ist man halt über eine DS gegangen, welche das Datum (numerisch) im Format JJJJMMTT darstellt und das hat man dann als Vergleichsdatum verwendet. Ich gehe seit geraumer Zeit her und mach dann halt im Programm für das Vergleichsdatum und das Datum aus der DB ein Programm beschriebenes Feld vom Typ Datum.

Fuerchau
26-06-19, 08:53
Du sollst ja auch das ERP nicht ändern.
Allerdings hilft da in vielen kleinen Dingen eine Datum-Tabelle, die man auch leicht per SQL pflegen/erstellen kann.
Diese kann man dann per Join (Jahr/Monat/Tag) immerhin trotzdem für SQL und performante Abfragen verwenden.