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

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

Select * where date BETWEEN date1 and date2 from БД ACCESS


Страницы:   1 2

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?


Страницы:   1 2

Наверх

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