Почему не пашет запрос? SELECT * FROM tblTable WHERE TimeField = TimeValue("14:40:00")

surovi
Дата: 02.09.2005 15:39:19
Почему не пашет запрос?
SELECT *  FROM tblTable WHERE TimeField = TimeValue("14:40:00")
Поле "TimeField" имеет Средний формат времени.
Когда смотрю таблицу, то в ней есть запись со значением поля = 14:40:00,
но запрос ничего не возвращает.

А вот следующий запрос:
SELECT *  FROM tblTable 
WHERE TimeField > TimeValue("14:39:59")
AND TimeField < TimeValue("14:40:00")
возвращает нужную запись.
У меня есть только одно предположение, что в это поле записано время приблизительно следующего плана
14:39:59 999 (999 - миллисекунды)
поэтому когда просматриваешь, то Access смотрит, что установлен средний формат времени и округляет до 14:40:00

Если кто-то имеет точную информацию по этому поводу сообщите пожалуйста.

Спасибо
попробуй так
Дата: 02.09.2005 15:41:15
#14:40:00#
surovi
Дата: 02.09.2005 17:22:12
не пашет такой вариант тоже
АлексейК
Дата: 02.09.2005 17:35:24
SELECT #12/30/1899 14:40:0# AS Выражение1
Владимир Саныч
Дата: 02.09.2005 17:49:55
surovi
У меня есть только одно предположение, что в это поле записано время приблизительно следующего плана
14:39:59 999 (999 - миллисекунды)

Совершенно верно. В полях типа "датавремя" дата сидит в целой части числа, а время в дробной. При таком способе хранения изобразить точно секунды не всегда возможно (или обычно невозможно). И вообще:
http://www.sql.ru/faq/faq_topic.aspx?fid=213
вопрос 19, ответ 1.
surovi
Дата: 02.09.2005 21:27:44
Пришлось сделать так
WHERE HOUR(TimeField) = 14 AND MINUTE(TimeField) = 40
а условие
WHERE TimeField >= TimeValue("14:40:00")
сделать так
WHERE HOUR(TimeField) > 14 
OR (HOUR(TimeField) = 14 AND MINUTE(TimeField) >= 40)
конечно не очень красиво - зато работает правильно
vam911
Дата: 05.09.2005 15:54:28
извратно. попробуй так. (работает)
SELECT Таблица1.eee
FROM Таблица1
WHERE (((Таблица1.eee)=CDate("1:01:00")));