![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в запросе указать условие отбора по дате с временем...
jeka_t © (2005-09-02 18:06:00)У меня запрос работет так:
Select * from Table where RegDateTime BETWEEN #09/02/2005# AND #08/26/2005#
Пишу:
Select * from Table where RegDateTime BETWEEN #09/02/2005 17:03:57# AND #08/26/2005 17:03:57# - не работает и пишет ошибку: "Неправильно определён объект Parametеr. Предоставлены несовместимые или не полные сведения"
Desdechado (2005-09-06 11:25:00) [1]параметрический запрос должен работать на 100%
если "не помогает", пиши текст ошибки и код
LostDelpher (2005-09-06 06:52:00) [2]Любая дата в БД это рациональное число - кажется до запятой - это дни после 1900 года а после это милисекунды после полуночи - точно не помню но покопайся с этим - в справке по MSSQL или ACCESS должно быть.
значит можно вместо дат поставить просто числа - помнится в Акцессе я так делал когда была эта проблема .
dmitry501 (2005-09-06 04:38:00) [3]К сожелению и это не помогает... Я нашел, ответ другой...
Этот другой ответ неверен. На сервере может стоять не только английския язык, а например русский или немецкий. В таком случае вы получите ошибки и головную боль в будущем. Наиболее правильный ответ - параметры, или если уж так хочется использовать строки - то дату для MS SQL передавайте в форматеyyyymmdd
jeka_t (2005-09-05 09:48:00) [4]К сожелению и это не помогает... Я нашел, ответ другой...
Select * From Table where Between DateValue('09/02/2005 17:03:57') and DateValue('08/26/2005 17:03:57')
Есть ещё и функция TimeValue()...
Sam Stone (2005-09-03 22:25:00) [5]тогда уж лучше ParamByName('tstart').asDateTime:=....
Desdechado (2005-09-02 18:56:00) [6]А ты используй нормальный параметрический запрос
Select * from Table where RegDateTime BETWEEN :tStart AND :tFinish
ParamByName( 'tStart' ).AsTimeStamp := ... #08/26/2005 17:03:57#