从日期中减去SQL Server中的天数

时间:2012-03-09 11:44:29

标签: sql-server-2005 datetime stored-procedures

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

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

2 个答案:

答案 0 :(得分:8)

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

CREATE FUNCTION SUBTRACT_DAYS( @date AS DATETIME, @days AS INT )
RETURNS DATETIME
BEGIN
  RETURN DATEADD(dd, -@days, @date);
END;

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

> 2011-11-18 06:05:19.200

答案 1 :(得分: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