日期:2014-05-18  浏览次数:20556 次

〓〓〓〓〓〓〓〓〓日期比较问题〓〓〓〓〓〓〓〓〓
急死我了~~

表aa    
开始日期bdate     varchar(50)     如2007-05-01
结束日期edate     varchar(50)     如2007-06-26

想得到如下结果

select   rqzt   =   ????
       
日期区间已经过了今天---     上例即是       则为     执行完毕
日期区间包含今天   -------------             则为     执行中
日期区间在今天以后     ------                     则为     未执行


怎么弄???



------解决方案--------------------
说详细点,rqzt是什么东西
你想得到什么东西
表aa结构是什么
------解决方案--------------------
select rqzt=case when getdate()> convert(datetime,edate) then '执行完毕 ' when getedate() <convert(datetime,bdate) then '未行完毕 ' else '执行中 ' end from tablename

------解决方案--------------------
if edate < convert(varchar(10), getdate(), 120)
--结束
else if edate = convert(varchar(10), getdate(), 120)
--执行中
else
--未执行
------解决方案--------------------
select rqzt = case when datediff(dd,edate,getdate())> 0 then '执行完毕 '
when datediff(dd,bdate,getdate())> 0 and datediff(dd,edate,getdate()) <0 then '执行中 '
when datediff(dd,bdate,getdate()) <0 then '执行完毕 '
end
from 表aa