我在创建查询时遇到了问题。
我需要创建一个SQL查询,其中ProductID = prodSelect(用户选择)和EndTime = Null和StartTime<距当前时间3小时。
这是我到目前为止所拥有的。有人可以帮我搞清楚吗?
Set rs = CurrentDb.OpenRecordset("SELECT TimeID " & _
"FROM tblLunchTime " & _
"WHERE ProductionID = prodSelect
AND EndTime = NULL
AND StartTime < (Now - 0/0/0000 3: 00: 00 AM")
答案 0 :(得分:3)
条件AND EndTime = NULL
始终评估为未知。相反,使用:
AND EndTime is NULL
然后,您可能应该告诉数据库如何解析日期时间字符串。这适用于MS Access(要求StartTime在过去超过3小时):
AND StartTime < dateadd('h',-3, now);
根据您的评论,这是一个完整的查询:
SELECT TimeID
FROM tblLunchTime
WHERE ProductionID = 1
AND EndTime IS NULL
AND StartTime < DATEADD('h',-3,now)
问题可能是你的产品;我不确定这是什么意思。您可以尝试将其用作变量,例如
"WHERE ProductionID = " & prodId & " " & _
答案 1 :(得分:0)
正如我所说in the other version of this question,我认为你应该在连接之前计算日期/时间标准。否则,你将它传递给服务器来做。即使数据存储是Jet / ACE,我也会这样做。