Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi default Datum 0000-00-00 übernehmen (https://www.delphipraxis.net/44681-default-datum-0000-00-00-uebernehmen.html)

Gambit 22. Apr 2005 17:47

Datenbank: MySQL • Version: 4 • Zugriff über: Zeos

default Datum 0000-00-00 übernehmen
 
Hallo,
ich habe eine DB mit einer Datumsspalte. In dieser Spalte ist der Defaultwert mit 0000-00-00 angegeben
Nun möchte ich per insert-Anweisung Datumswerte in eine neue Tabelle übernehmen. Das klappt auch soweit nur wenn ein Defaultwert übernommen werden soll, macht er aus 0000-00-00 den Wert 1899-12-30
Ist das normal bezw. kann man den Wert nicht so übernehmen?

Für Hansa: Die Urspungstabelle ist nicht von mir und den Defaultwert kann ich nicht ändern.

Gruß

Gambit

Gambit 22. Apr 2005 20:21

Re: default Datum 0000-00-00 übernehmen
 
wenn ich in die Tabelle, in der als Defaultwert 0000-00-00 für das Datum steht wie folgt reinschreibe

Delphi-Quellcode:
ZQuery1.SQL.Text:='INSERT INTO table () VALUES ()';
ZQuery1.ExecSQL;
wird auch 0000-00-00 reingeschrieben.

wenn ich

Delphi-Quellcode:
ZQuery1.append;
ZQuery1.post;
schreibe, wird ein neuer Satz angelegt und im Datumsfeld steht dann 1899-12-30 also nicht der Defaultwert, obwohl ich in das Feld gar nichts reinschreibe...versteh ich nicht...

Binärbaum 22. Apr 2005 20:39

Re: default Datum 0000-00-00 übernehmen
 
Zitat:

Zitat von Gambit
.. macht er aus 0000-00-00 den Wert 1899-12-30
Ist das normal bezw. kann man den Wert nicht so übernehmen?

Ja, das liegt daran, dass bei TDateTime der Wert 0 dem 30.12.1899 entspricht.
Und nochwas: was soll das den für ein Tag sein (Tag 0, Monat 0, Jahr 0), den gab es doch nie.

MfG
Binärbaum

Gambit 22. Apr 2005 20:44

Re: default Datum 0000-00-00 übernehmen
 
klar, ne das soll gar kein Tag sein. Das ist nur ein Defaultwert wenn es kein Datum gibt, is halt so.

Aber wieso schreibt er bei einer Insert-Anweisung den (komischen) Defaultwert rein und bei der .append-Anweisung nicht?

Binärbaum 22. Apr 2005 21:01

Re: default Datum 0000-00-00 übernehmen
 
Zitat:

Zitat von Gambit
Aber wieso schreibt er bei einer Insert-Anweisung den (komischen) Defaultwert rein und bei der .append-Anweisung nicht?

Keine Ahnung :oops: , aber versuch mal, ein Datum als Default-Wert zu nehmen, dass es auch gibt, z.b. 01.01.0001

MfG
Binärbaum

jfheins 22. Apr 2005 21:03

Re: default Datum 0000-00-00 übernehmen
 
Zitat:

Zitat von Gambit
Die Urspungstabelle ist nicht von mir und den Defaultwert kann ich nicht ändern.

Gruß

Gambit


Gambit 22. Apr 2005 21:04

Re: default Datum 0000-00-00 übernehmen
 
ne, das kann ich leider nicht...in der neuen Tabelle sollen als Defaultwerte die gleichen stehen wie in der Ursprungstabelle.

DGL-luke 22. Apr 2005 22:02

Re: default Datum 0000-00-00 übernehmen
 
1. das linux timestamp 0000000 entspricht dem 30.12.1899(sprich: linux timestamp = anzahl der vegangenen sekunden seit dem 30.12.1899 23:59:59).
2. wenn du also den 00.00.0000 eingibst, ist das timestamp wohl negativ - vielleicht kannst du das überprüfen.
3. vielleicht hilft dir das schon.
4. wenn ich mich irren sollte, dann berichtigt mich.

Union 22. Apr 2005 22:03

Re: default Datum 0000-00-00 übernehmen
 
SQL-Code:
ZQuery1.SQL.Text:='INSERT INTO table () VALUES ()';
ZQuery1.ExecSQL;
und wie wäre es wenn Du es stattdessen so machst:
SQL-Code:
ZQuery1.SQL.Text:='INSERT INTO table (Datum) VALUES (NULL)';
ZQuery1.ExecSQL;

Gambit 22. Apr 2005 22:23

Re: default Datum 0000-00-00 übernehmen
 
null geht nicht, ich muss 0000-00-00 haben
dann muss ich wohl die Insert Anweisung zusammenbasteln
Lieber wärs mir gewesen, wenn ich ohne Insert-Anweisung ausgekommen wäre, also mit .append und .post...


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:44 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