如何获取当前日期 向后推15天的 日期
比如: 现在是20140616号 向后推15天是1号
我想获取的是01
就是说如果低于10号的话 是01,02,03,04,05,06,07,08,09,
我写的是:
select convert(int, DATENAME(DD,GETDATE()+15)) //获取15天后的日期
获取是 1
select case when (convert(char, DATENAME(DD,GETDATE()+15)))<10 then 0+(convert(char(2), DATENAME(DD,GETDATE()+15))) else (convert(char, DATENAME(DD,GETDATE()+15))) end
获取的 还是 1
------解决方案--------------------
你转成yyyy-mm-dd的格式然后用dateadd来加15天就可以了
------解决方案--------------------
方法有很多种:
DECLARE @a VARCHAR(10)
SET @a='20140616'
SELECT SUBSTRING(@a,1,4)+'-'+SUBSTRING(@a,5,2)+'-'+SUBSTRING(@a,7,2)[当前日期]
select CONVERT(VARCHAR(10),DATEADD(DAY,15,SUBSTRING(@a,1,4)+'-'+SUBSTRING(@a,5,2)+'-'+SUBSTRING(@a,7,2)),121) [15天后]
/*
当前日期
----------
2014-06-16
(1 row(s) affected)
15天后
----------
*/
------解决方案--------------------
结果贴少了
DECLARE @a VARCHAR(10)
SET @a='20140616'
SELECT SUBSTRING(@a,1,4)+'-'+SUBSTRING(@a,5,2)+'-'+SUBSTRING(@a,7,2)[当前日期]
select CONVERT(VARCHAR(10),DATEADD(DAY,15,SUBSTRING(@a,1,4)+'-'+SUBSTRING(@a,5,2)+'-'+SUBSTRING(@a,7,2)),121) [15天后]
/*
当前日期
----------
2014-06-16
(1 row(s) affected)
15天后
----------
2014-07-01
*/
------解决方案--------------------
select right(convert(varchar,dateadd(d,15,getdate()),111),2) '向后推15天的日期'
/*
向后推15天的日期
---------
01
(1 row(s) affected)
*/