从字符串转换日期时间时转换失败
Comversion failed when converting datetime from character string
我制作了一个按钮,可以将当前日期和时间输入到 sql
中的数据库中
Dim curDate As DateTime = DateTime.Now
Dim regDate As String = curDate.ToString("yyyy-MM-dd HH:mm:ss")
qr = "Insert into sales (SaleDate) Values ('" & regDate & "')
它在另一个表单上的另一个按钮上工作,但我在差异表单上的差异按钮上遇到了这个错误
我试过这样做
qr = "Insert into sales (SaleDate) Values ('" & DateTime.Now & "')
但是没用
你的按钮
cmd.CommandText = "insert into sales (Date,Time) values (@Date,@Time)"
cmd.Parameters.AddWithValue("@Date", DateTime.Now.ToString("dd MMMM,yyyy"))
cmd.Parameters.AddWithValue("@Time", TimeOfDay.ToString("h:mm:ss tt"))
需要关闭和释放数据库对象。 Using...End Using 块会为您解决这个问题,即使出现错误也是如此。
我不得不猜测您使用的是哪种数据库。如果不是 Sql 服务器,那么您需要更改数据库对象的类型。例如,对于 Access,它将是 OleDbConnection
等..
如果 SalesDate
不是数据库中的 DateTime
数据类型,它应该是。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Using cn As New SqlConnection("Your connection string"),
cmd As New SqlCommand("Insert into sales (SaleDate) Values (@regDate);", cn)
cmd.Parameters.Add("@regDate", SqlDbType.DateTime).Value = DateTime.Now
cn.Open()
cmd.ExecuteNonQuery()
End Using
End Sub
This was a good solution 在之前的 post 中。
可能的原因是涉及到日期,也就是你用来插入数据的数据DateTime.Now() 不是必需的格式。这仅仅是因为您试图存储系统无法接受的错误数据。
尝试使用 ISO-8601 日期格式,这是 SQL 服务器的最佳选择。
您可以查看 CAST and CONVERT (Transact-SQL) 的文档。
我制作了一个按钮,可以将当前日期和时间输入到 sql
中的数据库中Dim curDate As DateTime = DateTime.Now
Dim regDate As String = curDate.ToString("yyyy-MM-dd HH:mm:ss")
qr = "Insert into sales (SaleDate) Values ('" & regDate & "')
它在另一个表单上的另一个按钮上工作,但我在差异表单上的差异按钮上遇到了这个错误
我试过这样做
qr = "Insert into sales (SaleDate) Values ('" & DateTime.Now & "')
但是没用
你的按钮
cmd.CommandText = "insert into sales (Date,Time) values (@Date,@Time)"
cmd.Parameters.AddWithValue("@Date", DateTime.Now.ToString("dd MMMM,yyyy"))
cmd.Parameters.AddWithValue("@Time", TimeOfDay.ToString("h:mm:ss tt"))
需要关闭和释放数据库对象。 Using...End Using 块会为您解决这个问题,即使出现错误也是如此。
我不得不猜测您使用的是哪种数据库。如果不是 Sql 服务器,那么您需要更改数据库对象的类型。例如,对于 Access,它将是 OleDbConnection
等..
如果 SalesDate
不是数据库中的 DateTime
数据类型,它应该是。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Using cn As New SqlConnection("Your connection string"),
cmd As New SqlCommand("Insert into sales (SaleDate) Values (@regDate);", cn)
cmd.Parameters.Add("@regDate", SqlDbType.DateTime).Value = DateTime.Now
cn.Open()
cmd.ExecuteNonQuery()
End Using
End Sub
This was a good solution 在之前的 post 中。
可能的原因是涉及到日期,也就是你用来插入数据的数据DateTime.Now() 不是必需的格式。这仅仅是因为您试图存储系统无法接受的错误数据。 尝试使用 ISO-8601 日期格式,这是 SQL 服务器的最佳选择。
您可以查看 CAST and CONVERT (Transact-SQL) 的文档。