创建SQL查询

时间:2010-06-30 19:18:24

标签: sql ms-access

我在创建查询时遇到了问题。

我需要创建一个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")

2 个答案:

答案 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,我也会这样做。