我有一些代码声明了一个对象变量,这个变量被分配了一个来自现有数据库字段的值。
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
但是,当我运行代码时,出现以下错误消息
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
这是为什么,我该如何解决?
最佳答案
简单地说,您可以使用toString
函数。还要检查您的时区。问题可能出在时区设置上。
希望您将日期作为字符串传递给数据库,尝试将日期作为日期时间变量而不是字符串传递
Public Shared Function sqlDate(dt As DateTime) As String
Return dt.toString("yyyy-MM-dd")
End Function
供您引用:https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx
关于SQL 日期时间到字符串格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38654241/