2013-07-16 31 views
1

我正在查找代碼,當Field1不爲null時,它將自動在下一個工作日的日期輸入到Field2中。或者更確切地說Field2 = Field1 + 1 weekday如何設置field2 = weekday +1

我使用Access 2007作爲前端,SQL 2008作爲後端。

任何幫助將不勝感激!

回答

0

如果您要在Access中針對鏈接的SQL Server表運行查詢,則查詢必須使用Access兼容的SQL。

爲了Field2一天後比Field1日期:

UPDATE YourTable 
SET Field2 = DateAdd('d', 1, Field1) 
WHERE Field1 Is Not Null; 

跳過週末兩天,使用Weekday功能在Switch語句來確定多少天的補充。

UPDATE YourTable 
SET Field2 = 
    DateAdd 
     (
      'd', 
      Switch 
       (
        Weekday(Field1) = 6, 3, 
        Weekday(Field1) = 7, 2, 
        Weekday(Field1) >= 1 AND Weekday(Field1)<=5, 1 
       ), 
      Field1 
     ) 
WHERE Field1 Is Not Null; 
+0

謝謝你們兩位的幫助! – David

0

聽起來你正在尋找一個UPDATE語句DATEADD

update YourTable 
set Field2 = dateadd(day,1,Field1) 
where Field1 is not null 

或者,如果你試圖刪除週末和隨時更新到最近的星期一,那麼這是一個CASE方式:

update YourTable 
set Field2 = 
    case 
    when datepart(dw,Field1) = 1 then dateadd(day,1,Field1) 
    when datepart(dw,Field1) = 7 then dateadd(day,2,Field1) 
    else dateadd(day,1,Field1) 
    end 
where Field1 is not null 
相關問題