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

4
我想从格式为(YY-MM-DD HH:MI:SS)的日期中减去若干天。是否有自动化函数可以执行此操作,或者执行此任务需要编写详尽的代码?我正在编写一个存储过程,其中包含上述任务。
更清楚地说,假设这是日期 2011-12-07 06:05:19.200 ,我想从中减去19天,结果将是2011-11-18 06:05:19.200 ,而天数将成为SP中的参数。
2个回答

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接