当值为00:00:00时,如何处理mysql datetime列

时间:2017-05-05 00:03:52

标签: c# mysql datetime

我有一个数据库列'date_announced',其值为0000-00-00 00:00:00,当我尝试将此值插入类字段时我遇到错误 Unable to convert MySQL date/time value to System.DateTime",如何优雅地处理代码而不抛出异常?

date_announced = 0000-00-00 00:00:00

var BuildDetails = new BuildAnnounceDetails();

while (rdr.Read())
{
    BuildDetails.SP = rdr.GetString(0);
    //BuildDetails.BuildID = rdr.GetString(1);
    BuildDetails.CreatedDate = rdr.GetString(1);
    BuildDetails.AnnouncedDate = rdr.GetString(2); **//throws an exception at this line**
    BuildDetails.AnnouncedBy = rdr.GetString(3);
    if (BuildDetails != null)
    {
        BuildAnnounceDetailsInfo.Add(BuildDetails);
    }
}

错误:

  

无法将MySQL日期/时间值转换为System.DateTime

1 个答案:

答案 0 :(得分:0)

您应该使用具有IsValidDateTime属性的GetMySqlDateTime方法。所以在你的情况下:

BuildDetails.AnnouncedDate = rdr.GetMySqlDateTime(2).IsValidDateTime?rdr.GetString(2):string.Empty;