快速提问。我试图从各个表中选择几个记录,其中日期字段小于或等于(< =)从下周二开始的两周。我似乎无法弄清楚如何让它来寻找下一个按时间顺序排列的星期二。
这是当前的WHERE子句,它查找今天的日期然后再添加14(今天恰好是星期二)。
WHERE qryLeadtimeSchedule。[预定日期处理]< = NOW()+ 14
我如何修改它以查找任何一天的下一个星期二?
答案 0 :(得分:1)
您可以使用Switch
和Weekday
功能。此代码假定您的工作周从工作日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为另一周)。