|
|
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
Что-то до меня вещь одна не доходит. between x and y отбирает значения включая x и y или между ними? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2003, 15:45 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
торможу, однако.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2003, 15:46 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
не... такой запрос Код: plaintext 1. 2. при вводе в [с какого] и [по какое] одного и того же дня (типа за один день посмотреть) стабильно выдает 0 если допустим с 11 по 12 делать - тогда нужное число... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2003, 15:51 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
а почему having а не where? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2003, 16:24 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
2 funddd: >при вводе в [с какого] и [по какое] одного и того же дня (типа за один день >посмотреть) стабильно выдает 0 ты гонишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2003, 16:51 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
при вводе в [с какого] и [по какое] одного и того же дня (типа за один день посмотреть) стабильно выдает 0 если допустим с 11 по 12 делать - тогда нужное число... у тебя дата вместе со временем в поле хранится... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2003, 17:04 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
2Павел Воронцов having, where - тут разницы нифига нет 2sasha_1 не гоню. могу зуб на отсечение дать - так и есть. 2am (a_mitin) дата и время - да, в одном поле. ну и что? от этого день меняется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 05:57 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
2 funddd having, where - тут разницы нифига нет Ошибаетесь, любезнейший. Попробуйте заменить having на where ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 07:51 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
2Павел Воронцов: Ну, может быть, в общем плане having и where это и не одно и то же (having мне Аксовский построитель запросов поставил). но в ДАННОМ КОНКРЕТНОМ СЛУЧАЕ отрабатывают они одинаково, поэтому я и написал, что "ТУТ нифига нет разницы". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 08:07 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
дата и время - да, в одном поле. ну и что? от этого день меняется? Если тебе так проще - оперируй не датами, а числами с плавающей точкой (чем они и являются) И подумай как у тебя 10.123 может быть Between 10 And 10, а так же почему оно попадает в Between 10 And 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 09:01 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
2 funddd Оно и видно, что построитель запросов поработал. А Вы ему, дурилке картонной, и поверили... 2 Лох Позорный Точно. Как же это я об этом не подумал... %) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 09:14 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
2ЛП: Блин! Чувствую в твоих словах правду неумолимую!!!! Преклоняюсь! А что делать-то? писать between [с какого] and ([по какое]+1) не получиться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 09:48 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
Отрезать Сусанину ногу В смысле от даты со временем отрезать время и оставить только дату. Вот ее и проверять на попадание в Between. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 10:01 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
иэхххх! время-то тоже нужно.... может, еще одно поле только для даты завести? А можно как-то запросом ТОЛЬКО ДАТУ выкусывать (так сказать, динамически ноги резать)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 10:05 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
>= #12.09.03# And < #12.09.03# + 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 10:05 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
А можно как-то запросом ТОЛЬКО ДАТУ выкусывать CDate(Int([ДатаСоВременем])) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 10:20 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
RE: А можно как-то запросом ТОЛЬКО ДАТУ выкусывать Format([ДатаСоВременем],"dd.mm.yy") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 10:34 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
2AlTis Format([ДатаСоВременем],"dd.mm.yy") А на выходе, наверное, будет дата, пригодная для использования в between'е? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 10:42 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
RE: Geo Работать будет, но с небольшой поправкой: Format[ДатаСоВременем],"dd.mm.yyyy") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 10:52 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
Format([ДатаСоВременем],"dd.mm.yyyy") Во-первых - Format возвратит строку, а не дату. Во-вторых, даже если писать ... Format(MyDate;"dd.mm.yyyy") between Format(FirstDate;"dd.mm.yyyy") And Format(LastDate;"dd.mm.yyyy") - То "01.01.2000" будет попадать между "01.01.2003" и "02.01.2003". В третьих, зачем писать ерунду, если перед этим уже дали корректный ответ на вопрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 11:00 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
т.е. "01.02.2000" будет попадать и далее по тексту ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 11:02 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
RE: Geo Да, я действительно ошибся. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 11:30 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
2AlTis Да не за что. Извини, если что :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 11:35 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
GEO: Правильный ответ Лох написал, я правильно понял? ЛП: твой вариант тоже что-то не очень-то работает... Буду копать. Спасибо всем за внимание ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 11:45 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
Все преобразования, если поле выборки индексированное, не есть хорошо: - время счета, скорей всего, вырастет на порядки (тем более если выборка стоит в WHERE , как рекомендуют умные люди, а не в HAVING) на большой таблице. Т.ч. используй че нить в виде {(t.fdate >= adate) AND (t.fdate <adate+1)}, Или {(t.fdate BETWEEN adate AND adate+1) AND (t.fdate <adate+1)}. Кстати, интересно, а (t.fdate Like Int(adate) & "*") с индексированным не строковым полем работать будет также тормознуто, как с использованием ф-ий? (т.е. будет ли происходить неявное преобразование значения поля в сравнении? То что просто работает для даты - проверено в 97.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 11:51 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
Правильный ответ Лох написал, я правильно понял? На вопрос о том, как "откусить время". Тебе еще надо засунуть его в between так ...CDate(Int([MyDateTime])) between FirstDate And LastDate... если FirstDate и LastDate без времени. В противном случае можно так: ...CDate(Int([MyDateTime])) between CDate(Int(FirstDate)) And CDate(Int(LastDate))... или так ...([MyDateTime]>=CDate(Int(FirstDate)) And [MyDateTime]<CDate(Int(LastDate)))... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 11:51 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
Да ну не нада там CDate, оно и так схавает (mdb/mde). И, подозреваю, шустрее отработает. Хотя все одно: - Int() к индексированному полю - это что серпом... мне кажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 12:00 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
2Assa Имхо, не стоит лишний раз доверять бейсиковому автоматическому приведению типов. Никогда заранее не скажу, к чему будет преобразована строка "1.1" при сравнении, скажем, с датами. То ли к "01-01-с.г." то-ли к (int)1.1, который затем превратиться в дату. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 12:08 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
Т.е. к (double)1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 12:10 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
Т.е. к (double)1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 12:10 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
Спасибо ВСЕМ! Все работает. Окончательный запрос: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 12:13 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
На лишние скобки просьба не обращать внимания :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 12:14 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
2GEO Просто извратный способ, придуман исключительно в попытке обойти "обработку" поля сравнения в инструкции WHERE - с тем, чтобы не терять преимущество индексного поиска. Но вот то-то и оно: когда с одной стороны стоит не строка, а "дата", а с другой - некая строковая величина (цифирь +*), казалось бы, Акс должен сравнивать "приведенное _к строке_ значение даты" с "цифирью & *" и не возвращать ничего (или того, что требуется), но он возвращает записи, как если бы он сравнивал "приведенное к строке значение ЧИСЛА, равного дате" с той-же "цифирью & *", что представляется забавным. Очень забавным. При сравнении индексированных СТРОК оператор Like str & "*" работает значительно шустрее Like "*" & str (т.е. пользует индексы, а не тупой перебор). Вот и хочется поюзать то же преимущество, но в работе с цифирью. А вот тут масса вопросов. Особо, при использовании преобразования индексированных полей ф-ями. Ведь чтобы после этого пользоваться индексами, необходимо точно знать, что ф-ии монотонны. Скорей всего Акс этого "не знает" даже о своих библиотечных ф-ях (Int). А по вопросу топика - (x>=n AND x<n+1 ) - оптимальное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 12:26 |
|
||
|
Beetween...And...
|
|||
|---|---|---|---|
|
#18+
Гы! Если написать Like CDbl(adate) & "*", то не вернет ни хрена, и, даже, если CLng!!! Ага, нарыл: ?Int(#12/02/2003#) & "*" 02.12.2003* т.е Int(даты) _сам по себе_ возвращает значение типа "дата" :0). т.е. вместо data>= #дата# AND data< #дата# +1 можно таки {Like Int(#дата#) & *} , (что не снимает вопроса о использовании индекса) а вот регион. настройки должны работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 13:03 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1679473]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
89ms |
get tp. blocked users: |
2ms |
| others: | 223ms |
| total: | 418ms |

| 0 / 0 |
