Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Konvertieren von MySQL.DateTime in System.DateTime mit 0000-00-00 00:00:00-Werten nicht möglich

Sehen Sie sich diese Dokumentation an , sieht es so aus, als würden Sie zwei widersprüchliche Optionen angeben (AllowZeroDateTime=true und ConvertZeroDateTime=true ) und eine, die nicht aufgeführt zu sein scheint (ZeroDateTimeBehavior=ConvertToNull ).

Ich schlage vor, es sei denn, Sie haben tatsächliche Daten, die DateTime.MinValue sind die Sie nicht mit dem "Null"-Wert verwechseln möchten, einfach Geben Sie ConvertZeroDateTime=true an und erkennen, ob das Ergebnis DateTime.MinValue ist . Das sollten Sie auf keinen Fall Rufen Sie reader.GetDateTime() auf , konvertieren Sie dann das Ergebnis in eine Zeichenfolge und dann zurück in ein DateTime - Sie sollten Zeichenfolgenkonvertierungen so weit wie möglich vermeiden, da sie Ihnen ziemlich leicht die Dinge durcheinander bringen können.

Es ist nicht wirklich klar, welchen Zeichenfolgenwert Sie für diese "Null"-Werte haben möchten, aber Sie sollten in der Lage sein, sie mit DateTime.MinValue in Sonderfälle umzuwandeln ziemlich einfach. Persönlich würde ich tatsächlich versuchen, die Daten so weit wie möglich in ihrer "nativen" Form zu belassen, anstatt alles in Strings umzuwandeln, aber das ist ein anderer Kampf.