Datumsfeld auf NULL zurücksetzen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Reginald
****
Beiträge: 114
Registriert: Fr, 23.07.2010 23:58

Datumsfeld auf NULL zurücksetzen

Beitrag 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
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Datumsfeld auf NULL zurücksetzen

Beitrag 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
Matthias_74
Beiträge: 2
Registriert: Di, 27.03.2012 20:35

Re: Datumsfeld auf NULL zurücksetzen

Beitrag 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).
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Datumsfeld auf NULL zurücksetzen

Beitrag 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.
Matthias_74
Beiträge: 2
Registriert: Di, 27.03.2012 20:35

Re: Datumsfeld auf NULL zurücksetzen

Beitrag 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.
Antworten