各位高手,有个问题请教,问题是这样的:
我现在用dateadd(day,5,'2008-10-28'),如果我现在执行这个的话,它的时间就会变成2008-11-02,我的目的是要对时间加5,但是要控制时间加完5后,不超过传入的时间的月份,也就是要显示在传入时间的月份的最后一天,就像上面的例子一样传入的是‘2008-10-28’加完5后要让它变成‘2008-10-31’,请问如何实现.
在此先谢过
SQL code:
select dateadd(day,-1, convert(varchar(8),dateadd(day,5,'2008-10-28'),120)+'01')
SQL code:
select convert(varchar(10),dateadd(day,-1, convert(varchar(8),dateadd(day,5,'2008-10-28'),120)+'01'),120)
------------
--2008-10-31
SQL code:
declare @dt datetime
set @dt = '2008-10-28'
declare @d int;
set @d = 5;
select
case when convert(varchar(6),dateadd(day,@d,@dt),112)=convert(varchar(6),@dt,112)
then dateadd(day,@d,@dt)
else dateadd(day,-1,dateadd(month,1,convert(varchar(6),@dt,112)+'01'))
end
谢谢高手赐教
SQL code:
select