Невозможно преобразовать значение даты и времени MySQL в System.DateTime
Я использую ibatis и С#. Я получаю результат от запроса выбора, который создал CreateDate как одно из полей. Datatype of CreatedDate в Mysql - это дата. Я назначаю результирующий набор запроса выбора в список Ilist <DeliveryClass> .
Здесь DeliveryClass CreatedDate как DateTime. Когда я запускаю приложение, я получаю Невозможно преобразовать значение даты/времени MySQL в System.DateTime. В чем может быть проблема?
Ответы
Ответ 1
Проблема в формате, на самом деле mysql имеет другой формат (yyyy-mm-dd) для типа данных даты и времени, и для решения этой проблемы используйте библиотеку соединителей mysql для .net отсюда
http://dev.mysql.com/downloads/connector/net/
он даст другой тип данных для даты/времени под названием MysqlDateTime
или вы можете форматировать данные даты/времени в своем заявлении SQL с помощью DATE_FORMAT (дата, формат)
вы можете получить более подробную информацию отсюда
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format
но я не рекомендую это, потому что вы потеряете силу типа данных даты/времени (например, вы не можете сравнивать), потому что теперь вы преобразуете его в строку, но я думаю, что это будет полезно в отчетах
Ответ 2
MySqlConnection connect = new MySqlConnection("server=localhost; database=luttop; user=root; password=1234; pooling = false; convert zero datetime=True");
Добавление convert zero datetime=True
в строку соединения автоматически преобразует значения 0000-00-00
Date в DateTime.MinValue()
.
что SOLVED
Ответ 3
Добавление "convert zero datetime = True" в строку подключения решило мою проблему.
<connectionStrings> <add name="MyContext" connectionString="Datasource=localhost;Database=MyAppDb;Uid=root;Pwd=root;CHARSET=utf8;convert zero datetime=True" providerName="MySql.Data.MySqlClient" /> </connectionStrings>
Отношения
PS
Ответ 4
Я решил свою проблему, установив значение по умолчанию в столбце как нулевые данные, а не используя 0000-00-00 00:00:00:
дата установки таблицы обновлений = null
Ответ 5
Он может находиться вне диапазона объекта DateTime. Я видел это пару раз. Попытайтесь изменить sql, чтобы вернуть текущую дату вместо своего столбца и посмотреть, идет ли она через ok.