经典ASP Recordset和SQL Server 2008 - DateTime格式问题

时间:2014-08-19 22:20:06

标签: sql sql-server sql-server-2008 asp-classic recordset

我正在使用经典ASP文件上传应用程序,它使用Recordset.AddNew功能插入数据库。
有一个表单将数据提交给此应用程序,应用程序(使用Recordset)获取表单变量,如下所示:

Set RS=Server.CreateObject("ADODB.Recordset") RS.AddNew RS("A_Category")=Form("strA_Category") RS("SP_VersionYear")=Form("strSP_VersionYear")

Form(“strSP_VersionYear”)是一个隐藏变量,它包含一个字符串变量,在表单页面中设置为:

strSP_VersionYear="2014"

当此变量插入数据库时​​,它将进入DateTime数据类型的列。只插入年份,就像上面的字符串一样,使用了SQL语句(在Insert语句中),但是,由于某种原因,它在尝试通过Recordset插入时抛出错误(如下所示)(如上图所示) )。

Provider error '80020005' Type mismatch

有没有办法可以将其格式化为成功插入DateTime列? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

您需要更改SQL列的数据类型,或者在提交时将前缀附加到版本年份。 IE浏览器。 "01-01-" &YEAR & " 12:00:00"

如果你可以进入,你也可以在SQL语句本身内转换SQL服务器中的输入元素。它将是Convert(datetime,'2014'),它将为您完成所有前缀。