用函数:依次判断当前记录的时间之后的每一天是否为工作日,是的话天数就加1直至达到你想要的天数,然后用获得的日期与当前时间相比
函数大致应该是这样的:
CREATE FUNCTION getCustomDate(@dSourceDate DateTime,@iAddDays int)
returns DATETIME
AS
BEGIN
DECLARE @i INT
DECLARE @k INT
DECLARE @m INT
SET @i = 0
SET @k = 0
WHILE (@k < @iAddDays)
BEGIN
SET @i =@i + 1
SET @m = DATEPART(dw,DATEADD(day,@i,@dSourceDate))
IF NOT (@m = 1 OR @m = 7)
SET @k = @k + 1
END
RETURN DATEADD(day,@i,@dSourceDate)
END
使用时:
SELECT dbo.getCustomDate('2010-02-19',2)获得的应该是 '2010-02-23'
对应数据库时,只要把时间换成对应的数据表字段就可以了
加一个判断就是了,使用detepart(weekday,日期)取出星期数据,判断数字是否是6或7。