Я получаю такую ошибку:
Невозможно преобразовать значение даты / времени MySQL в System.DateTime
пока я пытаюсь получить данные из базы данных MySQL. У меня есть тип данных date в моей базе данных MySQL. Но при извлечении его в мою таблицу данных он получает ошибку выше.
Как я могу это исправить?
.net
asp.net
mysql
asp.net-3.5
Анкит Чаухан
источник
источник
Ответы:
Если я введу в Google запрос «Невозможно преобразовать значение даты / времени MySQL в System.DateTime», я увижу многочисленные ссылки на проблему с доступом к MySQL из Visual Studio. Это ваш контекст?
Предлагается одно решение:
Ссылка: http://bugs.mysql.com/bug.php?id=26054
источник
Вы должны добавить
Convert Zero Datetime=True
в строку подключения, например:источник
Я добавил оба
Convert Zero Datetime=True
&,Allow Zero Datetime=True
и он отлично работаетисточник
Вытяните значение datetime в виде строки и выполните:
DateTime.ParseExact(value, "ddd MMM dd hh:mm:ss yyyy", culture, styles);
Вам просто нужно установить формат даты для даты, которую вы возвращаете из базы данных. Скорее всего, это такyyyy-MM-dd HH:mm:ss
. По крайней мере, для меня.Проверьте здесь дополнительную информацию о
DateTime.ParseExact
источник
Позвольте MySql преобразовать вашу временную метку unix в строку. Используйте функцию mysql FROM_UNIXTIME (113283901)
источник
Я также столкнулся с той же проблемой и получил имя столбца и его типы. Затем приведите (col_Name как Char) из имени таблицы. Таким образом, я получаю проблему как «0000-00-00 00:00:00», затем я обновляю как действительные дату и время, когда ошибка исчезает для моего случая.
источник
Вы можете сделать приложение полностью совместимым с датой и временем, используемыми MySql. Когда приложение запускается во время выполнения, предоставьте этот код. Сначала перейдите к событиям приложения. В списке инструментов
Это откроет новый файл. Этот файл содержит код, используемый при запуске приложения.
Напишите этот код в этом новом файле:
Partial Friend Class MyApplication Private Sub MyApplication_Startup(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup My.Application.ChangeCulture("en") My.Application.ChangeUICulture("en") My.Application.Culture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd" My.Application.Culture.DateTimeFormat.LongDatePattern = "yyyy-MM-dd" My.Application.Culture.DateTimeFormat.LongTimePattern = "HH:mm:ss" My.Application.Culture.DateTimeFormat.ShortTimePattern = "HH:mm:ss" End Sub End Class
источник
Вместо того, чтобы изменять строку подключения, вы можете использовать
IsValidDateTime
свойствоMySqlDateTime
объекта, чтобы помочь вам определить, можете ли вы преобразовать объект какDateTime
.У меня был сценарий, в котором я пытался загрузить данные из столбца «UpdateTime», который был явно установлен только при обновлении строки (в отличие от InsertedTime, который всегда был установлен). В этом случае я использовал такой
MySqlDataReader.GetMySqlDateTime
метод:источник
если "allow zero datetime = true" не работает, используйте следующие решения: -
Добавьте это в строку подключения: «allow zero datetime = no», чтобы преобразование типов работало идеально.
источник
В отчете Stimulsoft добавьте этот параметр в строку подключения (щелкните правой кнопкой мыши источник данных-> изменить)
источник