Tittar på denna dokumentation
, det verkar som att du anger två motstridiga alternativ (AllowZeroDateTime=true och ConvertZeroDateTime=true ) och en som inte verkar vara listad (ZeroDateTimeBehavior=ConvertToNull ).
Jag föreslår att om du inte har faktiska data som är DateTime.MinValue som du inte vill blanda ihop med "noll"-värdet, du bara ange ConvertZeroDateTime=true och upptäck om resultatet är DateTime.MinValue . Du bör definitivt inte anrop reader.GetDateTime() , konvertera sedan resultatet till en sträng och sedan tillbaka till en DateTime - du bör undvika strängkonverteringar så långt du kan, eftersom de kan förstöra saker för dig ganska lätt.
Det är inte riktigt klart vilket strängvärde du vill ha för dessa "noll"-värden, men du bör kunna använda specialfall för dem med DateTime.MinValue ganska lätt. Personligen skulle jag faktiskt försöka behålla data i sin "inhemska" form så mycket som möjligt istället för att konvertera allt till strängar, men det är en annan kamp.