2012-03-09 65 views
4

我想从格式为(YY-MM-DD HH:MI:SS)的日期中减去天数。是否有任何自动化功能来执行此操作,或者它是否是执行此任务的详尽编码。我正在编写一个包含上述任务的存储过程。从日期中减去SQL Server中的天数

更清楚可以说这是日期2011-12-07 06:05:19.200,我想从中减去19天,其结果将是2011-11-18 06:05:19.200和天数将是在SP参数

回答

8

你删除你以前回答过的同一个问题,但是这里有一个功能可以满足你的需求;

CREATE FUNCTION SUBTRACT_DAYS(@date AS DATETIME, @days AS INT) 
RETURNS DATETIME 
BEGIN 
    RETURN DATEADD(dd, [email protected], @date); 
END; 

SELECT dbo.SUBTRACT_DAYS('2011-12-07 06:05:19.200', 19); 

> 2011-11-18 06:05:19.200 
4

如何:

CREATE PROCEDURE dbo.DoSomethingUseful @InputDate DATETIME, @NumberOfDays INT 
AS BEGIN 

    SELECT DATEADD(Day, @NumberOfDays, @InputDate) 

END 

,然后调用它像这样:

EXEC dbo.DoSomethingUseful @InputDate = '2011-12-07T06:05:19.200', @NumberOfDays = -19 

回报:

2011-11-18 06:05:19.200