Seite 1 von 1

Datumsfeld auf NULL zurücksetzen

Verfasst: Mo, 26.03.2012 21:59
von Reginald
Hallo,

ich habe eine mysql-Datenbank und habe ein Datumsfeld (DATETIME), wo ein Datum drinsteht, das ich herauslöschen möchte, also ich möchte das Feld auf seinen ursprünglichen Wert zurücksetzen, als das Feld nie befüllt war.

UPDATE testtabelle SET datumsfeld='' WHERE id=123 (also zweimal hochkomma) funktioniert nicht.

Wäre das hier korrekt?

UPDATE testtabelle SET datumsfeld='0000-00-00 00:00:00' WHERE id=123

Scheint irgendwie zu funktionieren, aber ich bin mir nicht sicher.

Danke und Grüße
R

Re: Datumsfeld auf NULL zurücksetzen

Verfasst: Mo, 26.03.2012 23:14
von F3K Total
Hi Reginald,
bei mir (embeddet HSQLDB) geht dies:

Code: Alles auswählen

UPDATE testtabelle SET datumsfeld = null WHERE id=123
Viel Erfolg Gruß R

Re: Datumsfeld auf NULL zurücksetzen

Verfasst: Di, 27.03.2012 21:18
von Matthias_74
In MySQL sind die Datentypen DATE, TIME, YEAR und DATETIME nicht "nullbar". NULL sowie Leerstring ('') als Wert sind somit nicht zulässig für diese Datentypen. Als Null- bzw. Vorgabewert wird bei DATETIME gemeinhin "0000-00-00 00:00:00" verwendet - bei DATE-, YEAR- und TIME-Feldern sinngemäß nur der Datums-, der Jahr- oder Zeitbestandteil. Lange Rede kurzer Sinn: bei MySQL ist richtig

Code: Alles auswählen

UPDATE testtabelle SET datumsfeld='0000-00-00 00:00:00' WHERE id=123
In manchen Fällen kann es auch sinnvoll sein, als Vorgabewert ein besonders hohen oder niedrigen Wert zu verwenden, So z.B. wenn die Gültigkeit eines Datensatzes durch von/bis-Angaben gesteuert werden soll (bspw. Preis 1 gültig von 01.01.1900 bis 26.03.2012, Preis 2 gültig von 27.03.2012 bis 31.03.2012, Preis 3 gültig von 01.04.2012 bis 31.12.2500).

Re: Datumsfeld auf NULL zurücksetzen

Verfasst: Di, 27.03.2012 21:35
von DPunch
Servus
Matthias_74 hat geschrieben:In MySQL sind die Datentypen DATE, TIME, YEAR und DATETIME nicht "nullbar". NULL sowie Leerstring ('') als Wert sind somit nicht zulässig für diese Datentypen.
Ähhm... doch. Selbstverständlich.

Re: Datumsfeld auf NULL zurücksetzen

Verfasst: Di, 27.03.2012 22:42
von Matthias_74
Ups, mein Fehler! DPunch hat selbstverständlich recht: NULL ist durchaus bei MySQL für DATE, TIME, DATETIME und YEAR zulässig, vorausgesetzt man setzt kein NOT NULL-Attribut in der Felddefinition (keine Ahnung, wie ich auf diesen Quatsch in meinem vorhergehenden Posting kam). Der Leerstring allein ist's, was mit einem Error quittiert wird.