Convert Zero Datetime キーワード

MySQL の日付型の初期値は 「0000-00-00 00:00:00」 です。
これは .NET の日付型 DateTime と互換性がなく、.NET の日付型変数に代入したりキャストすると例外が発生します。
これを回避する接続文字列のキーワードが Convert Zero Datetime。接続文字列にこのオプションを True にして加えれば、データベースの値 「0000-00-00 00:00:00」 および不正な日付時刻を DateTime.MinValue(0001-01-01 00:00:00)にして返却します。

Server=localhost;User Id=hilapon;Password=hogehoge;Database=hogedb;Charset=utf8;Pooling=True;Convert Zero Datetime=True;


ただしクエリ内で比較する場合、Convert Zero Datetime=True であっても

select * from denpyou
where status_begin_date != '0000-00-00 00:00:00';

としないと比較できないので要注意。


あと Allow Zero Datetime キーワードを True にすると、クエリ全般で日付型を MySqlDateTime 型で返却します。

Server=localhost;User Id=hilapon;Password=hogehoge;Database=hogedb;Charset=utf8;Pooling=True;Allow  Zero Datetime=True;

これまた DateTime と互換性がないから注意が必要です。


#関連記事 Connector/NET で日付時間情報を処理する
#関連記事 MySqlConnection の使用

エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド

エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド