Создание SQL-запроса - PullRequest
1 голос
/ 30 июня 2010

У меня проблемы с созданием запроса.

Мне нужно создать запрос SQL, где ProductID = prodSelect (выбор пользователя) и EndTime = Null и StartTime <3 часа от текущего времени. </p>

Это то, что я имею до сих пор.Может ли кто-нибудь помочь мне разобраться?

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 ]

3 голосов
/ 30 июня 2010

Условие 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)

Возможно, проблема в вашем prodId; Я не уверен, что это должно означать. Вы можете попытаться использовать его как переменную, например

"WHERE ProductionID = " & prodId & " " & _
0 голосов
/ 01 июля 2010

Как я уже сказал в другой версии этого вопроса , я думаю, что вы должны вычислить критерий даты / времени, прежде чем объединять. В противном случае вы передаете это на сервер, чтобы сделать. Я сделал бы то же самое, даже если хранилище данных было Jet / ACE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...