我正在尝试将字符串(从文本文件)-'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)