Mysql
 sql >> Base de données >  >> RDS >> Mysql

Impossible de convertir MySQL.DateTime en System.DateTime avec les valeurs 0000-00-00 00:00:00

En regardant cette documentation , il semble que vous spécifiiez deux options contradictoires (AllowZeroDateTime=true et ConvertZeroDateTime=true ) et un qui ne semble pas être répertorié (ZeroDateTimeBehavior=ConvertToNull ).

Je suggère que, sauf si vous avez des données réelles qui sont DateTime.MinValue que vous ne voulez pas confondre avec la valeur "zéro", vous juste spécifiez ConvertZeroDateTime=true et détecter si le résultat est DateTime.MinValue . Vous ne devriez certainement pas appelez reader.GetDateTime() , puis convertissez le résultat en une chaîne, puis revenez en un DateTime - vous devez éviter autant que possible les conversions de chaînes, car elles peuvent facilement vous gâcher la vie.

La valeur de chaîne que vous voulez pour ces valeurs "zéro" n'est pas vraiment claire, mais vous devriez pouvoir les caser avec DateTime.MinValue Assez facilement. Personnellement, j'essaierais en fait de conserver autant que possible les données dans leur forme "native" plutôt que de tout convertir en chaînes, mais c'est une autre bataille.