powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Beetween...And...
35 сообщений из 35, показаны все 2 страниц
Beetween...And...
    #32262615
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то до меня вещь одна не доходит.
between x and y отбирает значения включая x и y или между ними?
...
Рейтинг: 0 / 0
Beetween...And...
    #32262618
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
торможу, однако....
...
Рейтинг: 0 / 0
Beetween...And...
    #32262624
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
включая.
...
Рейтинг: 0 / 0
Beetween...And...
    #32262630
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не...
такой запрос

Код: plaintext
1.
2.
select count(счетчик.ip) as [Количество посещений]
from [счетчик]
having (((счетчик.whenlook) between [с какого] and [по какое]));


при вводе в [с какого] и [по какое] одного и того же дня (типа за один день посмотреть) стабильно выдает 0
если допустим с 11 по 12 делать - тогда нужное число...
...
Рейтинг: 0 / 0
Beetween...And...
    #32262707
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а почему having а не where?
...
Рейтинг: 0 / 0
Beetween...And...
    #32262744
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 funddd:
>при вводе в [с какого] и [по какое] одного и того же дня (типа за один день
>посмотреть) стабильно выдает 0

ты гонишь.
...
Рейтинг: 0 / 0
Beetween...And...
    #32262758
am (a_mitin)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
при вводе в [с какого] и [по какое] одного и того же дня (типа за один день посмотреть) стабильно выдает 0
если допустим с 11 по 12 делать - тогда нужное число...

у тебя дата вместе со временем в поле хранится...
...
Рейтинг: 0 / 0
Beetween...And...
    #32263053
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Павел Воронцов
having, where - тут разницы нифига нет
2sasha_1
не гоню. могу зуб на отсечение дать - так и есть.
2am (a_mitin)
дата и время - да, в одном поле. ну и что? от этого день меняется?
...
Рейтинг: 0 / 0
Beetween...And...
    #32263100
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 funddd
having, where - тут разницы нифига нет

Ошибаетесь, любезнейший. Попробуйте заменить having на where
...
Рейтинг: 0 / 0
Beetween...And...
    #32263104
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Павел Воронцов:
Ну, может быть, в общем плане having и where это и не одно и то же (having мне Аксовский построитель запросов поставил).
но в ДАННОМ КОНКРЕТНОМ СЛУЧАЕ отрабатывают они одинаково, поэтому я и написал, что "ТУТ нифига нет разницы".
...
Рейтинг: 0 / 0
Beetween...And...
    #32263154
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дата и время - да, в одном поле. ну и что? от этого день меняется?

Если тебе так проще - оперируй не датами, а числами с плавающей точкой (чем они и являются)
И подумай как у тебя 10.123 может быть Between 10 And 10, а так же почему оно попадает в Between 10 And 11.
...
Рейтинг: 0 / 0
Beetween...And...
    #32263166
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 funddd
Оно и видно, что построитель запросов поработал. А Вы ему, дурилке картонной, и поверили...

2 Лох Позорный
Точно. Как же это я об этом не подумал... %)
...
Рейтинг: 0 / 0
Beetween...And...
    #32263213
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ЛП:
Блин! Чувствую в твоих словах правду неумолимую!!!!

Преклоняюсь! А что делать-то? писать between [с какого] and ([по какое]+1) не получиться...
...
Рейтинг: 0 / 0
Beetween...And...
    #32263224
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отрезать Сусанину ногу
В смысле от даты со временем отрезать время и оставить только дату.
Вот ее и проверять на попадание в Between.
...
Рейтинг: 0 / 0
Beetween...And...
    #32263229
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
иэхххх!
время-то тоже нужно....
может, еще одно поле только для даты завести?
А можно как-то запросом ТОЛЬКО ДАТУ выкусывать (так сказать, динамически ноги резать)?
...
Рейтинг: 0 / 0
Beetween...And...
    #32263231
>= #12.09.03# And < #12.09.03# + 1
...
Рейтинг: 0 / 0
Beetween...And...
    #32263247
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно как-то запросом ТОЛЬКО ДАТУ выкусывать
CDate(Int([ДатаСоВременем]))
...
Рейтинг: 0 / 0
Beetween...And...
    #32263273
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RE: А можно как-то запросом ТОЛЬКО ДАТУ выкусывать
Format([ДатаСоВременем],"dd.mm.yy")
...
Рейтинг: 0 / 0
Beetween...And...
    #32263294
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2AlTis
Format([ДатаСоВременем],"dd.mm.yy")
А на выходе, наверное, будет дата, пригодная для использования в between'е?
...
Рейтинг: 0 / 0
Beetween...And...
    #32263314
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RE: Geo
Работать будет, но с небольшой поправкой:
Format[ДатаСоВременем],"dd.mm.yyyy")
...
Рейтинг: 0 / 0
Beetween...And...
    #32263328
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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".
В третьих, зачем писать ерунду, если перед этим уже дали корректный ответ на вопрос?
...
Рейтинг: 0 / 0
Beetween...And...
    #32263332
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. "01.02.2000" будет попадать и далее по тексту
...
Рейтинг: 0 / 0
Beetween...And...
    #32263388
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RE: Geo
Да, я действительно ошибся. Спасибо.
...
Рейтинг: 0 / 0
Beetween...And...
    #32263406
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2AlTis
Да не за что. Извини, если что :)
...
Рейтинг: 0 / 0
Beetween...And...
    #32263426
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GEO: Правильный ответ Лох написал, я правильно понял?
ЛП: твой вариант тоже что-то не очень-то работает...
Буду копать. Спасибо всем за внимание
...
Рейтинг: 0 / 0
Beetween...And...
    #32263436
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все преобразования, если поле выборки индексированное, не есть хорошо: - время счета, скорей всего, вырастет на порядки (тем более если выборка стоит в 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.)
...
Рейтинг: 0 / 0
Beetween...And...
    #32263437
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильный ответ Лох написал, я правильно понял?
На вопрос о том, как "откусить время". Тебе еще надо засунуть его в 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)))...
...
Рейтинг: 0 / 0
Beetween...And...
    #32263453
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да ну не нада там CDate, оно и так схавает (mdb/mde). И, подозреваю, шустрее отработает. Хотя все одно: - Int() к индексированному полю - это что серпом... мне кажется.
...
Рейтинг: 0 / 0
Beetween...And...
    #32263468
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Assa
Имхо, не стоит лишний раз доверять бейсиковому автоматическому приведению типов. Никогда заранее не скажу, к чему будет преобразована строка "1.1" при сравнении, скажем, с датами. То ли к "01-01-с.г." то-ли к (int)1.1, который затем превратиться в дату.
...
Рейтинг: 0 / 0
Beetween...And...
    #32263476
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. к (double)1.1
...
Рейтинг: 0 / 0
Beetween...And...
    #32263477
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. к (double)1.1
...
Рейтинг: 0 / 0
Beetween...And...
    #32263482
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо ВСЕМ!

Все работает.
Окончательный запрос:
Код: plaintext
1.
2.
3.
SELECT count(счетчик.ip) AS [Количество посещений]
FROM [счетчик]
WHERE cdate(int(счетчик.whenlook)) between (cdate(([с какого]))) and (cdate(([по какое])));
...
Рейтинг: 0 / 0
Beetween...And...
    #32263484
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На лишние скобки просьба не обращать внимания :)
...
Рейтинг: 0 / 0
Beetween...And...
    #32263512
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2GEO

Просто извратный способ, придуман исключительно в попытке обойти "обработку" поля сравнения в инструкции WHERE - с тем, чтобы не терять преимущество индексного поиска. Но вот то-то и оно: когда с одной стороны стоит не строка, а "дата", а с другой - некая строковая величина (цифирь +*), казалось бы, Акс должен сравнивать "приведенное _к строке_ значение даты" с "цифирью & *" и не возвращать ничего (или того, что требуется), но он возвращает записи, как если бы он сравнивал "приведенное к строке значение ЧИСЛА, равного дате" с той-же "цифирью & *", что представляется забавным. Очень забавным.


При сравнении индексированных СТРОК оператор Like str & "*" работает значительно шустрее Like "*" & str (т.е. пользует индексы, а не тупой перебор). Вот и хочется поюзать то же преимущество, но в работе с цифирью. А вот тут масса вопросов. Особо, при использовании преобразования индексированных полей ф-ями. Ведь чтобы после этого пользоваться индексами, необходимо точно знать, что ф-ии монотонны. Скорей всего Акс этого "не знает" даже о своих библиотечных ф-ях (Int).

А по вопросу топика - (x>=n AND x<n+1 ) - оптимальное решение.
...
Рейтинг: 0 / 0
Beetween...And...
    #32263597
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гы!
Если написать Like CDbl(adate) & "*", то не вернет ни хрена, и, даже, если CLng!!!

Ага, нарыл:
?Int(#12/02/2003#) & "*"
02.12.2003*
т.е Int(даты) _сам по себе_ возвращает значение типа "дата" :0). т.е.
вместо data>= #дата# AND data< #дата# +1 можно таки {Like Int(#дата#) & *} , (что не снимает вопроса о использовании индекса) а вот регион. настройки должны работать.
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Beetween...And...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]