根据星期几查询日期范围

Query for date range based on day of the week

我正在尝试进行查询以显示当天和前一天的记录,但如果是星期一,则显示整个周末和当天的记录。

逻辑有效,但我无法使日期范围正常工作。我可以让单一日期工作。

IIf(Weekday(Date())=2,Date()-2,Date())

如果我尝试用这样的范围替换单个日期:

IIf(Weekday(Date())=2,Between Date()-2 And Date(),Between Date()-1 And Date())

Access 尝试从 Table 此查询引用的标签中附加标签,就像这样。这会导致查询结果为空。

IIf(Weekday(Date())=2,([Table].[Reported Date]) Between Date()-2 And Date(),([Table].[Reported Date]) Between Date()-1 And Date())

我是 Access 的新手,所以我不太明白发生了什么以及为什么它会尝试添加这些标签。

如果我做错了,请告诉我。

between 的语法是:

<value> between <lower bound> and <upper bound>

所以这不是一个有效的表达式:

Between Date()-2 And Date()

试试这样的:

YourColumn between Date()-2 and Date()

或者,没有 between

Date()-2 <= YourColumn and YourColumn <= Date()

您可以使用 DATEPART() 获取星期几。例如 - 星期一被认为是 2.

DatePart 函数使用 1-7,星期日为 1。

例如

声明您的变量并使用 DATEPART(w,GETDATE()).

一旦你有了这个,你就可以使用你的条件:

if (@todayDate_PT = 2)
     'query'
else
     'query'