c# - 当值为0000-00-00 00 :00:00时如何处理mysql datetime列

标签 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);
    }
}

错误:

Unable to convert MySQL date/time value to System.DateTime

最佳答案

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

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

关于c# - 当值为0000-00-00 00 :00:00时如何处理mysql datetime列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43794520/

相关文章:

mysql - 显示 MySQL 中的 phpMyAdmin 数据库

php - 如何获取当年的第一天?

java - 如何处理 Java 8/JSR 310/threeten.org 中 ISO-8601 时间戳中的 'optional' T?

c# - 有没有办法获取常用对话框按钮的本地化名称?

php - mysql 数据库的更新逻辑问题

php - 如何使 javascript/php 聊天室在加载时间和 SQL 通信方面更加高效

Javascript,没有时区的 Date.parse

c# - 如何缩小文本 block 中的字体大小以适应内容的宽度并保持字体纵横比

c# - 删除列表c#中的重复引用

javascript - 在 jQuery 的 DataTables-Table 插件中发布数据