如何更新日期,但日期/日期不应该是星期日或星期日

时间:2015-07-21 10:47:22

标签: sql ssis

我在SSIS中有一个执行SQL任务,它将数据库中的日期更新为今天的日期+3。但是如果假设今天是星期四说(2015年6月18日)并且作业执行那么根据数据库中的更新查询日期将更新到(21/6/2015),其中20和21是星期六和星期日。相反,我希望将日期更新为2015年6月23日,即周二(周六和周日除外)。请帮忙!

1 个答案:

答案 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)