ASP中以下的情况要如何运用DateDiff
ACCESS数据表sheet1表里有字段:购置日期,文本型,数据类似为:“2005.9”,或“没填”或空值;使用年限,数字型,或者为数字,或者为空值.现在我要做的是查找:特定某个时间enddate(字符串类型)与购置日期之差,大于使用年限的记录(这里如果“使用年限”字段为空的话使用默认值5), sql="select * from sheet1 where (InStr(现状,'已报废') <=0 or isnull(现状))"
sql = sql & " and ( (DateDiff('Y',replace(购置日期,'.','-'),"&enddate&")/365)>5 )"
(或者sql = sql & " and ( (DateDiff('yyyy',replace(购置日期,'.','-'),"&enddate&"))>5 )")
rs1.open sql,conn,1,1
运行结果是
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
ODBC 驱动程序不支持所需的属性。
哪位大虾帮我看看应该怎么写这个语句,
如果改成下面的:
sql="select * from sheet1 where ( InStr(iif( isnull(现状),'',现状 ),'已报废') <=0 )"这句运行没错,532条记录
sql = sql & " and DateDiff('y',CDate( Mid(购置日期,1,Instr(购置日期,'.')-1) + '-' + Mid(购置日期,Instr(购置日期,'.')+1,len(购置日期)) + '-1' ),'"&enddate&"' )/365> IIf(isnull(使用年限),5,使用年限)"
编译没有错误.可是运行结果还是错的唉,查出来的记录是空的...(记录用肉眼判断,绝不是空的)
把DateDiff('y',CDate( Mid(购置日期,1,Instr(购置日期,'.')-1) + '-' + Mid(购置日期,Instr(购置日期,'.')+1,len(购置日期)) + '-1' ),'"&to_day1&"' )/365计算出来写在网页上结果又没错...