Форум: "Начинающим";
Текущий архив: 2008.11.09;
Скачать: [xml.tar.bz2];
ВнизSelect * where date BETWEEN date1 and date2 from БД ACCESS Найти похожие ветки
← →
vegarulez © (2008-09-30 17:21) [0]Собственно сабж...
Как правильно сделать?
делаю вот так... но что-то не наблюдирую нужного эффекта. :..(Datamodule2.Zquery2.SQL.Text:="select * from `a` where (`c_date` BETWEEN #30/09/2008# and #30/09/2008# )
← →
Sten (2008-09-30 17:23) [1]СУБД?
← →
vegarulez © (2008-09-30 17:23) [2]ACCESS
← →
Правильный$Вася (2008-09-30 17:25) [3]а что за странные обратные апострофы?
← →
vegarulez © (2008-09-30 17:30) [4]Правильный$Вася (30.09.08 17:25) [3]
по существу плз
← →
Правильный$Вася (2008-09-30 17:33) [5]
> не наблюдирую
а какой эффект ты наблюдируешь?
← →
vegarulez © (2008-09-30 17:39) [6]Правильный$Вася (30.09.08 17:33) [5]
ты пишешь только для того, чтобы писать?
наблюдирую что не выбирается ничего чистый список. не находит ничего в этом диапазоне. хотя записи есть... так понятнее какой эффект может при этом наблюдироваться?
← →
stas © (2008-09-30 17:41) [7]vegarulez © (30.09.08 17:39) [6]
В диапазоне с 30/09/2008 00:00:00 по 30/09/2008 00:00:00 есть записи?
← →
vegarulez © (2008-09-30 17:42) [8]stas © (30.09.08 17:41) [7]
есть.
ИМХО: правильнее наврено в диапазоне
30/09/2008 00:00:00 по 30/09/2008 23:59:59
← →
vegarulez © (2008-09-30 17:43) [9]синтакисис селекта поля формата даты нужен для правильной выборки.
собственно в этом вопрос....
← →
Правильный$Вася (2008-09-30 17:46) [10]
> ты пишешь только для того, чтобы писать?
чтоб ты читал и думал, а не подпрыгивал
> ИМХО: правильнее наврено в диапазоне30/09/2008 00:00:00
> по 30/09/2008 23:59:59
у тебя не такой диапазон
> синтакисис селекта поля формата даты нужен для правильной
> выборки
так почему у тебя синтакисис не такой
← →
vegarulez © (2008-09-30 17:48) [11]
> так почему у тебя синтакисис не такой
За этим сюда и пришёл - чтобы подсказали такой - какой будет правильнее при общении с этой бд.
← →
Ega23 © (2008-09-30 17:49) [12]Подозреваю, что у тебя попадут в запрос только те записи, где дата строго равна 30.09.2008. Т.е. ровно в полночь 30.09.2008.
← →
vegarulez © (2008-09-30 17:50) [13]Ega23 © (30.09.08 17:49) [12]
я тоже это подозреваю )
основная суть вопроса - как развеять эти подозрения? ))
плиз поделитесь синтаксисом...
← →
sniknik © (2008-09-30 17:51) [14]> ИМХО: правильнее наврено в диапазоне
не, правильнее в таком #30/09/2008# and #01/10/2008#
первое значение >= а второе <, т.е. так ты весь день захватываешь, а в ткоем секунду теряешь. мелкая вероятность что попадется, но все же.
← →
sniknik © (2008-09-30 17:52) [15]> какой будет правильнее при общении с этой бд.
правильнее вообще то параметры.
← →
Плохиш © (2008-09-30 17:52) [16]
> vegarulez © (30.09.08 17:42) [8]
> ИМХО: правильнее наврено в диапазоне
Создай свою субд и реализовывай в ней своё "ИМХО".
← →
Правильный$Вася (2008-09-30 17:53) [17]еще правильнее использовать параметры и не компостировать мозги себе и серверу форматами непонятных данных
← →
sniknik © (2008-09-30 17:54) [18]> что у тебя попадут в запрос только те записи, где дата строго равна 30.09.2008.
не попадут ->
>= AND <
что не подставляй условие не верно.
← →
vegarulez © (2008-09-30 17:58) [19]Правильный$Вася (30.09.08 17:53) [17]
типа asdate?
← →
vegarulez © (2008-09-30 17:59) [20]Плохиш © (30.09.08 17:52) [16]
vegarulez © (30.09.08 17:30) [4]
← →
Ega23 © (2008-09-30 18:00) [21]
> не попадут ->
> >= 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 по-другому, тут я уже не в курсах...
← →
vegarulez © (2008-09-30 18:00) [22]vegarulez © (30.09.08 17:58) [19]
очибся...
вернее cast as date?
← →
b z (2008-09-30 18:00) [23]http://office.microsoft.com/en-us/access/HP010322121033.aspx
← →
vegarulez © (2008-09-30 18:05) [24]b z (30.09.08 18:00) [23]
синтаксиса датеатйма там не наблюдаю :(
← →
b z (2008-09-30 18:09) [25]
> синтаксиса датеатйма там не наблюдаю
Это еще в [15] можно было "наблюдировать". А мой пост для уточнения работы Between...And оператора.
← →
clickmaker © (2008-09-30 18:10) [26]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;
← →
Плохиш © (2008-09-30 18:14) [27]
> vegarulez © (30.09.08 17:59) [20]
Читай [7] пока не наступит просветление.
← →
vegarulez © (2008-09-30 18:23) [28]Плохиш © (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:30) [29]
> просто у пиндосов надо месяц сначала писать а потом дату.
а ежики все так же лезли на кактус
несмотря на то, что рядом есть специальная бритва ака параметры
← →
vegarulez © (2008-09-30 18:34) [30]Правильный$Вася (30.09.08 18:30) [29]
признаюсь чесна... не умею ими пользоваться...
пользовался ими кода писал ХП в IB... но это было давно и не правда...
подскажи как правильно при обращению к access`y их применить.
так, как посоветовал clickmaker © (30.09.08 18:10) [26]?
← →
vegarulez © (2008-09-30 18:37) [31]я в мускле делал вот так:
Datamodule2.ZQuery6.SQL.Text:="SELECT count(*) FROM `a` WHERE cast(`datetime` AS date) = curdate( )";
В access`e просто всё совсем по другому... поэтому туплю
← →
Правильный$Вася (2008-09-30 18:39) [32]
> так, как посоветовал clickmaker © (30.09.08 18:10) [26]?
да
← →
vegarulez © (2008-09-30 18:44) [33]ок - попробую - отпишусь если возникнут вопросы.
← →
vegarulez © (2008-09-30 18:51) [34]первый вопрос... (сразу приношу извинения если туплю)
формат :Date1 каков? Как обычно YYYY.MM.DD? Или в формате Access`a?
и почему перед ними : стоит?
← →
Правильный$Вася (2008-09-30 19:09) [35]
> формат :Date1 каков?
нет там формата, это НАЗВАНИЕ параметра
> и почему перед ними : стоит?
чтобы обозначить параметр
блин, справку читать мама не учила?
← →
Anatoly Podgoretsky © (2008-09-30 19:31) [36]
> просто у пиндосов надо месяц сначала писать а потом дату.
> ..
А ты пиндос?
← →
Anatoly Podgoretsky © (2008-09-30 19:31) [37]
> формат :Date1 каков? Как обычно YYYY.MM.DD? Или в формате
> Access`a?
А тип поля какой?
← →
sniknik © (2008-09-30 19:42) [38]> выдаёт одну запись.
> Впрочем, может в Access по-другому, тут я уже не в курсах...
действительно... получается >= AND <=
тогда я наврал с условием... правильнее было время на конец дня ставить. ;(
← →
Anatoly Podgoretsky © (2008-09-30 20:28) [39]> sniknik (30.09.2008 19:42:38) [38]
Правильнее BETWEEN выкинуть и заменить на >= AND < + 1
Вот это работает без побочных эффектов той или другой СУБД и не теряет ни одной записи и также не добавляет лишних.
BETWEEN дает побочные эффекты для разных вариантов DataTime
← →
Правильный$Вася (2008-10-01 11:38) [40]
> действительно... получается >= AND <=
BETWEEN включает обе границы диапазона
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.11.09;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.005 c