Ob das "Datum" '0000-00-00 "ein gültiges" Datum "ist oder nicht, ist für die Frage irrelevant." Nur die Datenbank ändern "ist selten eine praktikable Lösung.
Fakten:
- MySQL erlaubt ein Datum mit dem Wert Nullen.
- Diese "Funktion" wird häufig in anderen Sprachen verwendet.
Wenn ich also "nur die Datenbank ändere", werden Tausende von Zeilen PHP-Code unterbrochen.
Java-Programmierer müssen das MySQL-Nulldatum akzeptieren und ein Nulldatum wieder in die Datenbank aufnehmen, wenn andere Sprachen auf diese "Funktion" angewiesen sind.
Ein Programmierer, der eine Verbindung zu MySQL herstellt, muss null und 0000-00-00 sowie gültige Daten verarbeiten. Das Ändern von 0000-00-00 in null ist keine praktikable Option, da Sie dann nicht mehr feststellen können, ob das Datum für das Zurückschreiben in die Datenbank voraussichtlich 0000-00-00 war.
Für 0000-00-00 empfehle ich, den Datumswert als Zeichenfolge zu überprüfen und ihn dann in ("y", 1) oder ("yyyy-MM-dd", 0001-01-01) oder in einen ungültigen Wert zu ändern MySQL-Datum (weniger als 1000 Jahre, iirc). MySQL hat eine weitere "Funktion": Niedrige Daten werden automatisch in 0000-00-00 konvertiert.
Mir ist klar, dass mein Vorschlag ein Kludge ist. Aber auch die Datumsverarbeitung von MySQL. Und zwei Kludges machen es nicht richtig. Tatsache ist, dass viele Programmierer MySQL-Nulldaten für immer verarbeiten müssen .