2010-09-21 62 views
0

我不確定如何製作一個自動化腳本來增加數據庫中的所有日期。我被問到日期是星期五,腳本需要將下一個生意日期遞增到星期一,因此我需要腳本中的一些邏輯。用於遞增日期的SQL腳本

這可以用C#或任何其他編程語言輕鬆完成。但是,我被要求必須自動執行腳本,這是一個本地SQL腳本(* .sql)。我很困惑這是否可能。

+2

對於哪個DBMS? – pascal 2010-09-21 05:21:58

+0

根據日期表示法,通常很容易:找到DayOfWeek等於星期五的行;添加3天。 – pascal 2010-09-21 05:23:18

+0

對於微軟服務器 – SmallChess 2010-09-21 05:27:50

回答

2
UPDATE yourtable 
SET yourdate = dateadd(dd, 3, yourdate) 
WHERE datepart(weekday,yourdate)=6 

不管你想要怎樣操縱WHERE子句。它會在您的數據庫中的每個日期添加3天,這對應於您的WHERE子句。

+1

請注意,您的服務器設置週六是星期五。或者,您可以使用'DATENAME(WEEKDAY,yourdate)='Friday' - - 再次注意使用哪種語言設置。 – 2010-09-21 05:32:39

+1

UPDATE yourtable SET yourdate = dateadd(dd,CASE datepart(weekday,yourdate)WHEN 6 then 3 ELSE 1 END,yourdate) – pascal 2010-09-21 05:34:07

+0

謝謝,它的工作原理。你是一個天才,沒想到會有這樣一個優雅的解決方案。 – SmallChess 2010-09-21 06:30:24