Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql DateTime.Now.ToString在VB中格式不正确_Sql_Vb.net - Fatal编程技术网

Sql DateTime.Now.ToString在VB中格式不正确

Sql DateTime.Now.ToString在VB中格式不正确,sql,vb.net,Sql,Vb.net,我需要一个日期插入到一个数据库,但即使我格式化它使用 Exportedtime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") 它仍然显示为2016年3月24日上午9:25:13?因此,当我将其插入MSSQL数据库时,我得到了错误: The conversion of a varchar data type to a datetime data type resulted in an out-of-range value. 数据库字段是日期时间字

我需要一个日期插入到一个数据库,但即使我格式化它使用

Exportedtime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")

它仍然显示为2016年3月24日上午9:25:13?因此,当我将其插入MSSQL数据库时,我得到了错误:

The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
数据库字段是日期时间字段

有什么想法吗


谢谢

以下是您可以获得的简单方法:)


在我的申请中,我也遇到了这种格式问题。在详细研究了MSSQL中的日期时间格式之后,我提出了这个解决方案

"CONVERT(datetime,'" + DateTime.Now.ToString("yyyyMMdd HH:mm:ss") + "',112)"
使用上面的字符串插入日期时间值


阅读更多关于转换函数的信息-

大家好,谢谢你们的帮助@Alexb提供了我需要执行的提示

con = New SqlConnection(constring)
con.Open()
Dim cmd As New SqlCommand("Update Scripts set ExportedOn = @exportTime where scriptID = " & scriptID, con)
cmd.CommandType = CommandType.Text
cmd.Parameters.Add("@exportTime", SqlDbType.DateTime).Value = time
cmd.ExecuteNonQuery()
con.Close()

谢谢你的帮助。

谢谢@mohan111我已经试过了。使用ISO格式,如
yyyy-MM-dd HH:MM:ss
,而不是
/
日期没有格式。使用参数化的insert语句,您根本不需要任何ToString。“它仍然显示为2016年3月24日09:25:13 AM”如何显示?如果它在调试器中,那没关系,因为它只是调试器的表示感谢Mohan,我试过了,得到了错误:从字符串“CONVERT(datetime,'2016/03/2409:”转换键入“Date”无效。请尝试将datetime对象转换为不带分隔符的字符串,并将格式说明符指定为112。您可以使用上述答案中提供的相同代码。不要将日期/时间数据视为字符串!!!!使用参数化查询并在数据库中使用datetime列您的
ScriptID
也应该是数据库中的参数querypeople如此愚蠢以至于无法接受新事物我在任何地方都使用此方法,只是因为您在任何地方使用此方法并不能使其成为一个好的解决方案。您提供了一个代码片段,这对问题的发起者没有帮助。此外,其他人可能会找到它,并且可以将其作为一种常用方法-它不是参数化的SQL查询的存在有一个很好的理由。我甚至在mysql命令中使用它,为什么我希望在代码中添加额外的行并使其复杂化?将字符串转换为日期,然后再转换回字符串是低效的,因为您始终可以只提供日期。当您在日期格式为
dd/MM/yyyyy
MM/dd/yyyy
con = New SqlConnection(constring)
con.Open()
Dim cmd As New SqlCommand("Update Scripts set ExportedOn = @exportTime where scriptID = " & scriptID, con)
cmd.CommandType = CommandType.Text
cmd.Parameters.Add("@exportTime", SqlDbType.DateTime).Value = time
cmd.ExecuteNonQuery()
con.Close()