我正在使用经典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列? 谢谢你的帮助。
答案 0 :(得分:1)
您需要更改SQL列的数据类型,或者在提交时将前缀附加到版本年份。 IE浏览器。 "01-01-" &YEAR & " 12:00:00"
如果你可以进入,你也可以在SQL语句本身内转换SQL服务器中的输入元素。它将是Convert(datetime,'2014')
,它将为您完成所有前缀。