Access SQL:如何使用代码来表示“下周二”?

时间:2014-09-09 15:51:49

标签: sql date ms-access-2010

快速提问。我试图从各个表中选择几个记录,其中日期字段小于或等于(< =)从下周二开始的两周。我似乎无法弄清楚如何让它来寻找下一个按时间顺序排列的星期二。

这是当前的WHERE子句,它查找今天的日期然后再添加14(今天恰好是星期二)。

WHERE qryLeadtimeSchedule。[预定日期处理]< = NOW()+ 14

我如何修改它以查找任何一天的下一个星期二?

1 个答案:

答案 0 :(得分:1)

您可以使用SwitchWeekday功能。此代码假定您的工作周从工作日2开始(工作日函数的第二个参数),即星期一在VBA的奇数世界。

试试这个:

SELECT [Scheduled Date Dispositioned], 
Switch(
    Weekday([Scheduled Date Dispositioned],2)=1,[Scheduled Date Dispositioned]+1+14,
    Weekday([Scheduled Date Dispositioned],2)=2,[Scheduled Date Dispositioned]+7+14,
    Weekday([Scheduled Date Dispositioned],2)=3,[Scheduled Date Dispositioned]+6+14,
    Weekday([Scheduled Date Dispositioned],2)=4,[Scheduled Date Dispositioned]+5+14,
    Weekday([Scheduled Date Dispositioned],2)=5,[Scheduled Date Dispositioned]+4+14,
    Weekday([Scheduled Date Dispositioned],2)=6,[Scheduled Date Dispositioned]+3+14,
    Weekday([Scheduled Date Dispositioned],2)=7,[Scheduled Date Dispositioned]+2+14
    ) as [14 days from next tuesday] 
FROM YourTable

它的作用是评估当前的工作日,然后返回此日期+到达下周二+ 14所需的天数。例如,如果工作日(Date())为星期一为1,则将1添加到得到下周二并为你的偏移增加14。如果下周二,则表示此后一周内的星期二,您可能需要调整添加的值(+7为另一周)。