ASP实现生日提前提醒的问题?

来源:百度知道 编辑:UC知道 时间:2024/05/21 06:27:02
有很多会员的数据,其中包括生日字段:sr
生日的年份是真实的,比如:
1987-11-7

我想要筛选出未来7天内过生日的数据。
SQL语句如下

sql="select * from [vip] where datediff('d',sr,'"&date()&"')>-7 and datediff('d',sr,'"&date()&"')<=0 order by id desc"

直接用datediff函数的话,是计算1987-11-7到今天的天数。
我的目的是要计算,今年的11-7到今天的天数,如果能这样,问题就解决。

经测试:
<%=datediff("d",month("1987-11-7")&"-"&day("1987-11-7"),date)%>和
<%=datediff("d","2007-11-7",date)%> 运行结果一致,也就是说,省略年份的话,程序就以当前年份来计算。这样就能解决问题

但是——
用在SQL语句种就难办了
我用月、日函数对sr字段进行处理,去掉年份,代码:
sql="select * from [vip] where datediff('d',"&month("sr")&"-"&day("sr")&",'"&date()&"')>-7 and datediff('d',"&month(sr)&"-"&day(sr)&",'"&date()&"')<=0 order by id desc"
这样无法

我做了个例子,仅供参考:
首先打开纪录集rs的查询条件:"select * from vip"
然后:
while not rs.eof
sdate=cdate(year(date()) & "-" & month(rs("sr")) & "-" & day(rs("sr")))
if sdate>=date() and DateDiff("d", date(), sdate)<=7 then
response.Write "您的生日快到了<br>"
end if
rs.movenext
wend

可以用mid函数啊 而且你也不一应要在SQL语句上下工夫啊 你可以都先去出来在在外边用条件啊