不知道从哪里开始。我有一个交货日期,我需要获取上周二的日期(除非日期是星期二,在这种情况下我使用该日期)。我这样做是作为Access查询中的公式,而不是vba。
答案 0 :(得分:0)
函数Weekday(DelDate,3)
将返回您离开星期二的天数(上面的公式中的3表示星期二作为星期的开始)。如果从交货日期中减去上述(并加1),那么它应该在上周二落地。
答案 1 :(得分:0)
您可以使用IIF
,这是普通SQL中Access的非直观等效CASE
。请参阅参考https://msdn.microsoft.com/en-us/library/hh213574.aspx
此代码首先检查日期是否为星期二,然后如果没有倒计时,直到找到星期二:
SELECT
IIF
(format(yourdatevar, "dddd") = 'Tuesday'
,yourdatevar
,IIF(format(yourdatevar - 1, "dddd") = 'Tuesday'
,yourdatevar -1
,IIF(format(yourdatevar - 2, "dddd") = 'Tuesday'
,yourdatevar-2
,IIF(format(yourdatevar - 3, "dddd") = 'Tuesday'
,yourdatevar-3
,IIF(format(yourdatevar - 4, "dddd") = 'Tuesday'
,yourdatevar-4
,IIF(format(yourdatevar - 5, "dddd") = 'Tuesday'
,yourdatevar-5
,IIF(format(yourdatevar - 6, "dddd") = 'Tuesday'
,yourdatevar-6,null
))))))) as Delivery_date
FROM yourtbl