1

我正在寻找当 Field1 不为空时将在下一个工作日的日期自动输入 Field2 的代码。或者更准确地说 Field2 = Field1 + 1 weekday

我使用 Access 2007 作为前端,使用 SQL 2008 作为后端。

任何帮助将不胜感激!

4

2 回答 2

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
于 2013-07-16T00:50:48.360 回答
0

如果要在 Access 中针对链接的 SQL Server 表运行查询,则查询必须使用与 Access 兼容的 SQL。

Field2Field1日期晚一天:

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;
于 2013-07-16T00:54:23.597 回答