![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрос данных с определенной датой [D7, Access]
Yuri Btr © (2005-05-14 16:20:00)Ув. мастера, кто нибудь знает возможно ли SQL заставить игнорировать часть поля типа DateTime а именно его часть, где содержится время. Хотелось бы чтобы при запросе например
SELECT ... WHERE DateTimeField=#05/15/2005#
выдавались записи от 15 мая не только со временем 00:00:00, но и с любым другим временем в пределах 15 мая, а то не очень удобно указывать пределы
SELECT ... WHERE (DateTimeField>=#05/15/2005#) AND (DateTimeField<#05/16/2005#)
Возможно ли это сделать или нет?
В моей книжке "UBDERSTANDING SQL" нет примеров работы со временем, только с датой
Заранее спасибо
sniknik (2005-05-15 11:00:00) [1]> Судя по Help все таки есть разница - и дата бывает отицательной - это даты меньшие 30.12.1899 - в этом случае Fix корректней.
ну, если у тебя есть такие даты. согласен.
> to Alpine
> Спасибо, попробую
не стоит. во первых Extract это "из другой оперы", для аксеса тоже самое будет так Year(DateTimeField), Month(DateTimeField), ....
а во вторых это тоже будет вычисляемое значение ... см [5], сравнение с вычисляемым не использует индексы, со всеми вытекающими.
Yuri Btr (2005-05-15 08:35:00) [2]to sniknik ©
Судя по Help все таки есть разница - и дата бывает отицательной - это даты меньшие 30.12.1899 - в этом случае Fix корректней.
to Alpine
Спасибо, попробую
Alpine (2005-05-15 01:06:00) [3]Extract(<Элемент> From <Выражение>) - Из выражения содержащего значение даты или времени извлекается значение соответствующего указанному Элементу. В качестве элемента можно использовать значения : YEAR, MONTH, DAY, HOUR, MINUTE, SECOND.
sniknik (2005-05-14 21:29:00) [4]Fix(number) is equivalent to:
Sgn(number) * Int(Abs(number))
sniknik (2005-05-14 21:26:00) [5]> Для даты корректней использовать все же Fix.
без разници, дата отрицательной не бывает, а для положительных значений функции равнозначны.
Yuri Btr (2005-05-14 20:53:00) [6]to sniknik ©
Спасибо. Для даты корректней использовать все же Fix.
Но ввиду полного перебора записей наверное не пригодится - зачем лишние тормоза программе.
sniknik (2005-05-14 19:47:00) [7]> trunc(Date). Но это тормозит запрос.
еще бы. вычисление, выражение с ним не использует индексы, работает только полным перебором таблици.
для access тоже самое Int(DateTimeField), но осторожнее с этим...
ANB (2005-05-14 17:46:00) [8]Может не в тему. В Оракле я делаю так : trunc(Date). Но это тормозит запрос.
Yuri Btr (2005-05-14 17:40:00) [9]to Johnmen ©
спасибо за конкретный ответ.
Johnmen (2005-05-14 16:54:00) [10]Указание пределов в данном случае вполне легитимно и универсально.
DSKalugin (2005-05-14 16:49:00) [11]или преодалей неудобства или не записывай в базу время