日期:2014-05-19  浏览次数:20456 次

SQL 判断信息将在15天内过期
数据库里有如下结构:
ID         UpdateTime                       AgentTime
1           2007-3-5   17:26:51         1
2           2007-3-5   17:26:51         2
3           2007-3-5   17:26:51         3
4           2007-3-5   17:26:51         4
5           2007-3-5   17:26:51         6
UpdateTime是更新时间,AgentTime,是到期时间,不过这个是月份数字,表示几个月后过期
想取出哪些信息将在15天内过期
现在的判断条件:updateTime   +   AgentTime   <   15
写的如下SQL语句,但是得不到想要的
哪里错了,高手指教!

select   *   from   HIS_2HandInfo   where   datediff(day,dateadd( "d ",AgentTime*30,UpdateTime),getDate()) <15   and   datediff(day,dateadd( "d ",AgentTime*30,UpdateTime),getDate())> 0

------解决方案--------------------
select *
from HIS_2HandInfo
where datediff(day,getDate(),dateadd(month,AgentTime,UpdateTime)) <15
and datediff(day,getDate(),dateadd(month,AgentTime,UpdateTime))> 0


------解决方案--------------------
SELECT * FROM TB WHERE DATEDIFF(DAY,UpdateTime,CAST(CAST(YEAR(UpdateTime) AS VARCHAR)+ '- '+CAST(AgentTime AS VARCHAR)+ '- '+ '01 'AS DATETIME)) <=15