午夜后分别查询时间和日期字段的条件

时间:2019-11-07 08:40:54

标签: access-vba

我目前正在尝试创建查询更新,该更新每班8个小时运行一次。查询成功,但在过去的午夜部分卡住了。 我有3个班次: 班次1:上午7:30至下午4:30 班次2:下午4.30至11:30 班次3:晚上11:30至上午7:30

查询我尝试的班次3的条件:

日期:-------------------------时间:

Date()----------------------在#11:30:00 PM#和#11:59:59 PM#之间

Date()+ 1 -------------------在#12:00:00 AM#和#7:29:59 AM#之间

结果:它仅适用于今天[date()],当date()到达明天时,它将重置为第二天。

班次1和班次2成功,但是对于班次3查询未成功运行。日期和时间在表中使用= date()和= time()分隔。我可以知道该如何设置班次3的标准吗?

1 个答案:

答案 0 :(得分:0)

您可以使用和/或

Shift 1: Where [TimeField] >= #07:30# And [TimeField] < #16:30#
Shift 2: Where [TimeField] >= #16:30# And [TimeField] < #23:30#
Shift 3: Where [TimeField] >= #23:30# Or  [TimeField] < #07:30#

要过滤日期:

Select * 
From YourTable
Where [TimeField] >= #07:30# And [TimeField] < #16:30# And [DateField] = [SelectDate]

' For the other shifts:

Where [TimeField] >= #16:30# And [TimeField] < #23:30#And [DateField] = [SelectDate]

Where ([TimeField] >= #23:30# And [DateField] = [SelectDate]) Or  ([TimeField] < #07:30# And [DateField] = DateAdd("d", 1, [SelectDate]))