我在SSIS中有一个执行SQL任务,它将数据库中的日期更新为今天的日期+3。但是如果假设今天是星期四说(2015年6月18日)并且作业执行那么根据数据库中的更新查询日期将更新到(21/6/2015),其中20和21是星期六和星期日。相反,我希望将日期更新为2015年6月23日,即周二(周六和周日除外)。请帮忙!
答案 0 :(得分:0)
我做了以下SELECT
声明,可能对您有帮助。
使用DATEPART
功能,您可以发现一周中的哪一天。
DATEPART
返回一个数字,表示作为参数传递给函数的日期的星期几,假设1是星期日,7是星期六。
select CASE
WHEN DATEPART(DW, GETDATE() + 4) = 7 THEN (SELECT GETDATE() + 6)
WHEN DATEPART(DW, GETDATE() + 5) = 1 THEN (SELECT GETDATE() + 5)
END As date
在更新声明中使用此示例:
UPDATE <your table>
SET dateofanything = (CASE
WHEN DATEPART(DW, GETDATE() + 3) = 7 THEN (SELECT GETDATE() + 5)
WHEN DATEPART(DW, GETDATE() + 3) = 1 THEN (SELECT GETDATE() + 4)
END As date)