select frdt,todt,daynum,(todt+1得到的日期) begindt,(根据daynum/15*6/(float)12计算得到的日期) enddt
from table
例如 当 frdt=2009-06-01 todt=2009-07-11 时begindt=todt+1=2009-07-12当daynum=41时41/15*6/(float)12=1年
enddt=begindt+1年=2010-07-12
如果 daynum=4646/15*6/(float)12=1.5年enddt=begindt+1.5年=2011-07-12如果 daynum/15*6/(float)12>=5年时,按5年算,要实现这样的功能,得怎么写的?
from table
例如 当 frdt=2009-06-01 todt=2009-07-11 时begindt=todt+1=2009-07-12当daynum=41时41/15*6/(float)12=1年
enddt=begindt+1年=2010-07-12
如果 daynum=4646/15*6/(float)12=1.5年enddt=begindt+1.5年=2011-07-12如果 daynum/15*6/(float)12>=5年时,按5年算,要实现这样的功能,得怎么写的?
dateadd(m,daynum/15*6,dateadd(d,1,todt))) enddt
from table
CONVERT(varchar(10), DATEADD(day, 1, b.todt), 120) AS begindt来得到,enddt就不知怎么写了
begindt=DATEADD(DD,1,todt),
enddt=dateadd(year,ceiling(case when (daynum/15*6/12)*1.0>=5 then 5
else (daynum/15*6/12)*1.0 end)
,DATEADD(DD,1,todt))
from [table]
select frdt,todt,daynum,dateadd(d,1,todt) begindt,(case when daynum/15*6>=60 then dateadd(m,60,dateadd(d,1,todt)) else
dateadd(m,daynum/15*6,dateadd(d,1,todt)) end) enddt
from table
select frdt, todt, daynum,
CONVERT(varchar(10), DATEADD(day, 1, b.todt), 120) AS begindt,
CONVERT(varchar(10), dateadd(year,ceiling(CASE WHEN daynum / 15 * 6 / (12 * 1.0)
>= 5 THEN 5 ELSE daynum / 15 * 6 / (12 * 1.0) END), DATEADD(DD, 1, todt)), 120) enddtfrom table
得到所要的了