von Matthias_74 » Di, 27.03.2012 21:18
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).
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]UPDATE testtabelle SET datumsfeld='0000-00-00 00:00:00' WHERE id=123[/code]
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).