标题:ASP中以下的情况要如何运用DateDiff
取消只看楼主
liny392
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-11-29
结帖率:100%
已结贴  问题点数:20 回复次数:3 
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计算出来写在网页上结果又没错...
搜索更多相关主题的帖子: ASP DateDiff 
2009-11-29 20:50
liny392
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-11-29
得分:0 
sql = sql & " and DateDiff('y',CDate( Mid(购置日期,1,Instr(购置日期,'.')-1) + '-' + Mid(购置日期,Instr(购置日期,'.')+1,len(购置日期)) + '-1' ),'"&enddate&"' )/365> 5"这条改成五的话也是不对的啊。。。
2009-11-30 14:33
liny392
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-11-29
得分:0 
为什么这么少人帮我回答捏。。我发了好几个网站了,至今都没有解决。。。。人品不够
2009-11-30 14:48
liny392
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-11-29
得分:0 
不会操作。。不让我结贴就不让我发言。。。不行的。如果有空值那会编译不通过。。所以。我特意把值全填满了,但是算出来的是空集
2009-12-02 13:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-293402-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.397598 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved