Envoyé par
sabotage
Dans ce cas la, le champ doit être NULL.
+1
Tu te prends un peu les pieds dans l'tapis, car le mal est déjà fait.
Mais comme l'a souligné @Sabotage, ton champ de type DATE doit accepter les valeurs nulles (NULL).
Ceci demande de faire une intervention dans la Bdd, du champ.
Ensuite, et comme le mal est déjà fait, il faudra aussi intervenir dans cette Bdd pour corriger toutes ces valeurs 0000-00-00 et y mettre explicitement une valeur nulle.
C'est pas fini
Ces valeurs 0000-00-00 sont la conséquences d'au moins 2 opérations :
Soit au moment de l'insertion (INSERT INTO)
Soit au moment d'une mise à jours (UPDATE).
Les valeurs nulles, sont des exceptions, bien malheureusement, et bien souvent cela demande de faire un traitement, code particulier pour indiquer à MySQL que celle ci doit être nulle.
Par exemple, ceci n'est pas une valeur nulle :
INSERT INTO table (champ) VALUES ('')
Ca débouchera sur des 0000-00-00 si c'est un champ de type date.
Pour obtenir une valeur nulle, faut l'indiquer comme ceci : (et sans les quotes -> '')
INSERT INTO table (champ) VALUES (NULL)
Lorsque tu aura régler toutes ces étapes, ceci te garantira de ne jamais obtenir de valeur 0000-00-00 mais bien nulle, ou alors une date valide.
En d'autres termes, il vaut mieux régler ce problème en amont.
Partager