sql >> Base de Datos >  >> RDS >> Mysql

No se puede convertir MySQL.DateTime a System.DateTime con valores 0000-00-00 00:00:00

Mirando esta documentación , parece que está especificando dos opciones contradictorias (AllowZeroDateTime=true y ConvertZeroDateTime=true ) y uno que parece no estar en la lista (ZeroDateTimeBehavior=ConvertToNull ).

Sugiero que, a menos que tenga datos reales, que son DateTime.MinValue que no desea confundir con el valor "cero", simplemente especifique ConvertZeroDateTime=true y detectar si el resultado es DateTime.MinValue . Definitivamente no deberías llamar a reader.GetDateTime() , luego convierta el resultado en una cadena y luego vuelva a un DateTime - debe evitar las conversiones de cadenas en la medida de lo posible, ya que pueden estropear las cosas con bastante facilidad.

No está muy claro qué valor de cadena desea para estos valores "cero", pero debería poder convertirlos en casos especiales con DateTime.MinValue bastante fácil. Personalmente, intentaría mantener los datos en su forma "nativa" tanto como sea posible en lugar de convertir todo en cadenas, pero esa es una batalla diferente.