访问查询公式来计算上周二的日期

问题描述:

不确定从哪里开始。我有一个交货日期,我需要获得上个星期二的日期(除非日期是星期二,在这种情况下,我使用该日期)。我这样做是作为Access查询中的公式,而不是vba。访问查询公式来计算上周二的日期

函数Weekday(DelDate,3)将返回您离开星期二(上述公式中的3表示星期二为星期几开始)的天数。如果您从交货日期扣除上述(并加1),那么它应该在前一个星期二降落。

+0

或只使用4(星期三),忘了添加1〜公式。 – geeFlo

+0

使用星期三并添加IF语句以使用当前交付日期(如果= 7)。像魅力一样工作。 –

您可以使用IIF,这是Access在正常SQL中不直观的等效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