Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

о сравнении дат в SQL


RUu ©   (2010-12-19 15:03:00) 

В базе имеется дата вместе со временем. Нужно сравнить эту дату с переменной типа tdatetime так, чтобы в случае равенства дат они признавались равными, независимо от времени. Чтобы время не учитывалось, только сам день.
Можно конечно записать
... where Дата between date1 and date2
а в date1 и date2 присвоить соответственно 12/12/2010 00:00:00 и 12/12/2010 23:59:59, но хотелось бы проще. Как должно выглядеть условие?


sniknik   (2010-12-19 16:57:00) [1]

> Можно конечно записать
> ... where Дата between date1 and date2
нужно именно так, если хочешь чтобы использовался индекс. с вычисляемыми значениями будет полный скан.


MonoLife   (2010-12-19 15:49:00) [2]

...where Дата between :date1 and :date2
parametrbyname('date1').value:=trunc(TDateTime)
parametrbyname('date2').value:=trunc(TDateTime)
разумеется, вместо TDateTime подставляйте свои значения


RUu   (2010-12-19 15:33:00) [3]

MS Access


Юрий Зотов   (2010-12-19 15:31:00) [4]


> RUu   (19.12.10 15:21) [2]
> я имею в виду sql-функцию

Дык... она же зависит от сервера, а Вы его не указали.


RUu   (2010-12-19 15:21:00) [5]

я имею в виду sql-функцию


MonoLife   (2010-12-19 15:15:00) [6]

> но хотелось бы проще.
trunc(TDateTime)


Наверх

Титульная страница Поиск, карта сайта Написать письмо