![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Select * where date BETWEEN date1 and date2 from БД ACCESS
vegarulez © (2008-09-30 17:21:00)Собственно сабж...
Как правильно сделать?
делаю вот так... но что-то не наблюдирую нужного эффекта. :..(
Datamodule2.Zquery2.SQL.Text:='select * from `a` where (`c_date` BETWEEN #30/09/2008# and #30/09/2008# )
Правильный$Вася (2008-10-01 11:38:00) [1]
> действительно... получается >= AND <=
BETWEEN включает обе границы диапазона
Anatoly Podgoretsky (2008-09-30 20:28:00) [2]> sniknik (30.09.2008 19:42:38) [38]
Правильнее BETWEEN выкинуть и заменить на >= AND < + 1
Вот это работает без побочных эффектов той или другой СУБД и не теряет ни одной записи и также не добавляет лишних.
BETWEEN дает побочные эффекты для разных вариантов DataTime
sniknik (2008-09-30 19:42:00) [3]> выдаёт одну запись.
> Впрочем, может в Access по-другому, тут я уже не в курсах...
действительно... получается >= AND <=
тогда я наврал с условием... правильнее было время на конец дня ставить. ;(
Anatoly Podgoretsky (2008-09-30 19:31:00) [4]
> формат :Date1 каков? Как обычно YYYY.MM.DD? Или в формате
> Access`a?
А тип поля какой?
Anatoly Podgoretsky (2008-09-30 19:31:00) [5]
> просто у пиндосов надо месяц сначала писать а потом дату.
> ..
А ты пиндос?
Правильный$Вася (2008-09-30 19:09:00) [6]
> формат :Date1 каков?
нет там формата, это НАЗВАНИЕ параметра
> и почему перед ними : стоит?
чтобы обозначить параметр
блин, справку читать мама не учила?
vegarulez (2008-09-30 18:51:00) [7]первый вопрос... (сразу приношу извинения если туплю)
формат :Date1 каков? Как обычно YYYY.MM.DD? Или в формате Access`a?
и почему перед ними : стоит?
vegarulez (2008-09-30 18:44:00) [8]ок - попробую - отпишусь если возникнут вопросы.
Правильный$Вася (2008-09-30 18:39:00) [9]
> так, как посоветовал clickmaker © (30.09.08 18:10) [26]?
да
vegarulez (2008-09-30 18:37:00) [10]я в мускле делал вот так:
Datamodule2.ZQuery6.SQL.Text:='SELECT count(*) FROM `a` WHERE cast(`datetime` AS date) = curdate( )';
В access`e просто всё совсем по другому... поэтому туплю
vegarulez (2008-09-30 18:34:00) [11]Правильный$Вася (30.09.08 18:30) [29]
признаюсь чесна... не умею ими пользоваться...
пользовался ими кода писал ХП в IB... но это было давно и не правда...
подскажи как правильно при обращению к access`y их применить.
так, как посоветовал clickmaker © (30.09.08 18:10) [26]?
Правильный$Вася (2008-09-30 18:30:00) [12]
> просто у пиндосов надо месяц сначала писать а потом дату.
а ежики все так же лезли на кактус
несмотря на то, что рядом есть специальная бритва ака параметры
vegarulez (2008-09-30 18:23:00) [13]Плохиш © (30.09.08 18:14) [27]
да #ля... мне и так всё понятно... что их там 0
м\у 00:00:00 и 00:00:00
что тупить то???? я просто как пример привёл...
я прошу элементарно - написать синтаксис как правильно к ней обратится...
потому как #30/09/2008# and #01/10/2008# выдают все записи...
не надо воду на мельницу лить - если было что по существу пиши - нет нахрен мусорить в теме?
полазил в инете...
просто у пиндосов надо месяц сначала писать а потом дату...
заработало правильно при
#09/30/2008# and #10/01/2008#
Плохиш (2008-09-30 18:14:00) [14]
> vegarulez © (30.09.08 17:59) [20]
Читай [7] пока не наступит просветление.
clickmaker (2008-09-30 18:10:00) [15]Datamodule2.Zquery2.SQL.Text:='select * from `a` where (`c_date` BETWEEN :Date1 and :Date2 )
Datamodule2.Zquery2.ParamByName('Date1').AsDateTime := Date1;
Datamodule2.Zquery2.ParamByName('Date2').AsDateTime := Date2;
b z (2008-09-30 18:09:00) [16]
> синтаксиса датеатйма там не наблюдаю
Это еще в [15] можно было "наблюдировать". А мой пост для уточнения работы Between...And оператора.
vegarulez (2008-09-30 18:05:00) [17]b z (30.09.08 18:00) [23]
синтаксиса датеатйма там не наблюдаю :(
Ega23 (2008-09-30 18:00:00) [18]
> не попадут ->
> >= AND <
> что не подставляй условие не верно.
create table tmp (UNID int);
insert into tmp (UNID) values (1);
Select * from tmp where UNID between 1 and 1
drop table tmp
выдаёт одну запись.
Впрочем, может в Access по-другому, тут я уже не в курсах...
b z (2008-09-30 18:00:00) [19]http://office.microsoft.com/en-us/access/HP010322121033.aspx
vegarulez (2008-09-30 18:00:00) [20]vegarulez © (30.09.08 17:58) [19]
очибся...
вернее cast as date?