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

时间:2016-11-18 20:01:56

标签: ms-access

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

2 个答案:

答案 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