![]() |
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 |
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:
wird auch 0000-00-00 reingeschrieben.
ZQuery1.SQL.Text:='INSERT INTO table () VALUES ()';
ZQuery1.ExecSQL; wenn ich
Delphi-Quellcode:
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...
ZQuery1.append;
ZQuery1.post; |
Re: default Datum 0000-00-00 übernehmen
Zitat:
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 |
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? |
Re: default Datum 0000-00-00 übernehmen
Zitat:
MfG Binärbaum |
Re: default Datum 0000-00-00 übernehmen
Zitat:
|
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.
|
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. |
Re: default Datum 0000-00-00 übernehmen
SQL-Code:
und wie wäre es wenn Du es stattdessen so machst:
ZQuery1.SQL.Text:='INSERT INTO table () VALUES ()';
ZQuery1.ExecSQL;
SQL-Code:
ZQuery1.SQL.Text:='INSERT INTO table (Datum) VALUES (NULL)';
ZQuery1.ExecSQL; |
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... |
Re: default Datum 0000-00-00 übernehmen
Kann ja sein, das der Kunde als Defaultwert 0000-00-00 haben will. Aber warum? Kannst Du den nicht überzeugen, das aktuelle Tagesdatum als Defaultwert zu nehmen. Wäre zumindest nach meinem Verständnis für ne Datenbank sinnvoll. Ein leerer Datensatz würde dann defaultmäßig mit dem aktuellen Tagesdatum belegt. Und wenn das halt für die aktuellen Daten nicht paßt, kommt das korrekte Datum (Rückgabe bis, Konzerttermin am oder was weiß ich...) dort rein.
schöni |
Re: default Datum 0000-00-00 übernehmen
ne, da gehts um Berechnungen, alle Daten seit blah. Wenn kein Datum da ist, soll auch kein Datensatz geliefert werden in dem Fall.
ich denke ich könnte ihn überzeugen 01.01.1900 zu nehmen. Wär vielleicht am einfachsten... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:55 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