У меня есть код, который объявляет объектную переменную, и этой переменной присваивается значение из существующего поля базы данных.SQL datetime to string format
Dim datestart As Object
datestart = dbToDate(dr("DateStart"))
Переменная затем передается через функцию, которая проверяет, является ли это нуль, а затем преобразует его в тип данных даты и времени.
Public Shared Function dbToDate(o As Object) As DateTime
If o Is DBNull.Value Then
Return Nothing
Else
Return Convert.ToDateTime(o)
End If
End Function
Последнее, что мне нужно делать с ним преобразовать его в формат для даты строки, DD/MM/YYYY, так что я могу вставить его в новую базу данных.
Функция, которую я до сих пор является
Public Shared Function sqlDate(dt As DateTime) As String
Return "'" & Format(dt, "yyyyMMdd") & "'"
End Function
Однако, когда я запускаю код, я получаю следующее сообщение об ошибке
Преобразование типа VARCHAR данных для данных даты и времени тип привел к превышению значения.
Почему это и как его исправить?
Проверьте значения в таблице для столбца DateStart. Одна или несколько строк содержат значения, выходящие за пределы, указанные для типа C# DateTime. –
@TheShooter Это vb.net, а не C# –
Извините, я забыл отметить язык, но язык не имеет значения. Базовый тип данных всех языков .net одинаковый. Поместите точку останова в datestart = dbToDate (оператор dr («DateStart»)), проверьте значение dr («DateStart») и посмотрите, находится ли он между DateTime.Mix и DateTime.Max. В качестве альтернативы обратите внимание на значение DateTime.Min и DateTime.Max и в таблице sql найдите строки, которые имеют значение из этого диапазона. –