0

我正在根据前一个工作日发生的事件在 Access 2007 中自动生成一些报告。周二至周六,前一个工作日是前一天。在星期一,前一个工作日是两天前。其中一份报告涉及带有时间戳的小额现金支付。使用 Date() 函数和 Between 语句很容易获取上一个工作日的记录:

WHERE Paid_Out_Datetime Between Date()-1 AND Date()

这将返回从前一天到现在的付款列表(这将是当天凌晨 4 点左右)。但是如果你把它放在一个 iif 函数中:

WHERE Paid_Out_Datetime =  iif(Weekday(Date())=2,Paid_Out_Datetime Between Date()-2 AND Date(), Paid_Out_Datetime Between Date()-1 AND Date())

...没有返回记录。如果您只是使用Paid_Out_Datetime = Date()-1,您将不会获得任何记录,除非付款恰好在前一天的同一时间进行。将 Between 标准放在 iif 函数中似乎会导致它的行为与作为单个标准不同。我的 where 子句看起来很简单;任何想法为什么它不起作用?

4

0 回答 0