将日期时间 (.net) 转换为日期时间 (SQL 服务器) 时出现问题



我正在尝试将字符串(从文本文件)-'17/07/99'传递到SQL Server表中-目标是日期列。插入内容采用字符串形式,格式为:

Dim cmd As New SqlCommand(...yada...) 
cmd.CommandText = "INSERT INTO my.table (thisDate, ...etc... ) VALUES (@myDate, ...etc...)"

我正在使用以下命令将参数添加到cmd中:

cmd.Parameters.Add("@myDate", SqlDbType.DateTime).Value = Date.ParseExact("11/11/11", "dd/MM/yy", CultureInfo("en-GB"))

当我来到ExecuteNonQuery

我收到cannot convert string to datetime错误。我以为 ParseExact 正在从字符串转换为日期时间??

我真的需要在 sql 中进行转换以及使用日期时间结构吗?!

试试这个:

cmd.Parameters.Add("@myDate", SqlDbType.DateTime).Value = new DateTime(2011, 11, 11);

还看到这个:

http://msdn.microsoft.com/en-us/library/w2sa9yss(v=vs.110).aspx

刚刚对此进行了测试,它可以工作...无论您的操作系统是什么文化,如果您希望日期保持一致,则只需要格式化日期,否则您不必这样做

你可以这样使用

Dim d As Date = "17/07/99"

或者你可以用这种方式

Dim d As Date = "17.07.99"

如果你只有日期而没有时间,那么你使用什么并不重要你可以使用这个

cmd.Parameters.Add("@myDate", SqlDbType.DateTime).Value = d

或者这个

cmd.Parameters.Add("@myDate", SqlDbType.Date).Value = d

我只是混合尝试了两个版本,没有任何错误并且插入了行

在添加字符串之前尝试设置字符串的格式。

Format(YourTimeStringHere, dd-MM-yy)

最新更新