このドキュメント
を見る 、2つの矛盾するオプションを指定しているようです(AllowZeroDateTime=true およびConvertZeroDateTime=true )およびリストされていないように見えるもの(ZeroDateTimeBehavior=ConvertToNull 。
DateTime.MinValueである実際のデータがない限りお勧めします 「ゼロ」の値と混同したくない場合は、 ConvertZeroDateTime=trueを指定します 結果がDateTime.MinValueであるかどうかを検出します 。あなたは間違いなくすべきではありません reader.GetDateTime()を呼び出します 、次に結果を文字列に変換してから、DateTimeに戻します -文字列変換は、非常に簡単に混乱する可能性があるため、できる限り避ける必要があります。
これらの「ゼロ」値に必要な文字列値は明確ではありませんが、DateTime.MinValueを使用して特殊なケースに入れることができるはずです。 かなり簡単です。個人的には、すべてを文字列に変換するのではなく、データを可能な限り「ネイティブ」形式に保つようにしていますが、それは別の戦いです。