Mysql
 sql >> Database >  >> RDS >> Mysql

Impossibile convertire MySQL.DateTime in System.DateTime con valori 0000-00-00 00:00:00

Osservando questa documentazione , sembra che tu stia specificando due opzioni contraddittorie (AllowZeroDateTime=true e ConvertZeroDateTime=true ) e uno che sembra non essere elencato (ZeroDateTimeBehavior=ConvertToNull ).

Lo suggerisco a meno che tu non abbia dati effettivi che sono DateTime.MinValue che non vuoi confondere con il valore "zero", tu solo specifica ConvertZeroDateTime=true e rileva se il risultato è DateTime.MinValue . Sicuramente non dovresti chiama reader.GetDateTime() , quindi converti il ​​risultato in una stringa e poi di nuovo in un DateTime - dovresti evitare il più possibile le conversioni di stringhe, poiché possono rovinarti le cose abbastanza facilmente.

Non è molto chiaro quale valore di stringa desideri per questi valori "zero", ma dovresti essere in grado di utilizzarli in casi speciali con DateTime.MinValue abbastanza facilmente. Personalmente proverei effettivamente a mantenere i dati nella loro forma "nativa" il più possibile piuttosto che convertire tutto in stringhe, ma questa è una battaglia diversa.