代码之家  ›  专栏  ›  技术社区  ›  BioXhazard

创建SQL查询

  •  1
  • BioXhazard  · 技术社区  · 16 年前

    创建查询时遇到问题。

    我需要创建一个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 回复  |  直到 16 年前
        1
  •  3
  •   Andomar    16 年前

    条件 AND EndTime = NULL 总是计算为未知。相反,请使用:

    AND EndTime is NULL 
    

    然后,您可能应该告诉数据库如何解析datetime字符串。这将适用于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)
    

    问题可能是你的prodId;我不知道这是什么意思。你可以试着用它作为变量,比如

    "WHERE ProductionID = " & prodId & " " & _
    
        2
  •  0
  •   Community Mohan Dere    9 年前

    就像我说的 in the other version of this question ,我认为在连接之前应该计算日期/时间标准。否则,您将把它传递给服务器来执行。即使数据存储是Jet/ACE,我也会这么做。

    推荐文章