Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.84/63: Рейтинг темы: голосов - 63, средняя оценка - 4.84
1 / 1 / 0
Регистрация: 27.09.2010
Сообщений: 26

Как сравнить даты в Access

03.12.2006, 04:31. Показов 13289. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне нужно делать выберку из ДБ похоже этой:
select * from table where date1 between '10/10/2006' and '11/11/2006 '.
Date поля в таблице хранятся в text формате. Но выберка как то не правильно делается. Я новичок в MS Access.
Где ошибка?
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.12.2006, 04:31
Ответы с готовыми решениями:

Как сравнить даты и вывести просрочки
Доброго дня, Гуру:) Есть две даты и ФИО. Возможно ли сделать так, чтобы при нажатии кнопки "открыть форму" и открытии формы...

Сравнить поля даты в Access
Здравствуйте! Нужно сравнить два поля даты - одно из таблицы, другое с формы, которая на этой таблице основана. Пишет что...

VBA Access. Сравнить две даты
Как проверить дату, на вхождение в диапазон? Пробовал так: strtimef = CStr(Me.date_fie) + " " + CStr(Me.time_fie) ...

30
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
14.12.2017, 16:51
Студворк — интернет-сервис помощи студентам
where F = 'макаров'

например с таким условием
1
0 / 0 / 0
Регистрация: 14.12.2017
Сообщений: 12
14.12.2017, 16:53
Цитата Сообщение от Capi Посмотреть сообщение
А данные те, что были в первоначальном вопросе, или же другие?
У меня, напоминаю, получается именно Макаров Макар Макарович 04.04.2004.

Фамилии в самой таблице конечно отличаются, там 12 фамилий, но суть от этого не меняется ... в таблице есть
Макаров Макар Макарович 04.04.2004 и Макаров Макар Макарович 03.03.2003
И у меня никак не получается выделить этого отсутствующего Макаров Макар Макарович 04.04.2004
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
14.12.2017, 17:03
Цитата Сообщение от BenderLog Посмотреть сообщение
Фамилии в самой таблице конечно отличаются, там 12 фамилий, но суть от этого не меняется
Сделайте сначала на тех тестовых данных, которые выкладывали.
Сообщите результат.
Потом будем двигаться дальше.
А то уже две страницы топчемся на месте.
0
0 / 0 / 0
Регистрация: 14.12.2017
Сообщений: 12
14.12.2017, 17:06
Цитата Сообщение от alvk Посмотреть сообщение
where F = 'макаров'
например с таким условием
Очень странно ...

Select Проба.*
FROM Проба
where F = 'макаров'

Система мне выдает только Макаров Макар Макарович 03.03.2003
второго с датой 04.04.2004 не показывает ...
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
14.12.2017, 17:18
BenderLog,

Еще дополню свой запрос на случай наличия в обеих таблицах одинаковых групп нескольких записей
для полных тезок с разными датами рождения.
Добавить условие:
SQL
1
WHERE NOT (Test.O & Test.I & Test.F & Test.Born IN (SELECT O & I & F & Born FROM ANY_Person))
1
0 / 0 / 0
Регистрация: 14.12.2017
Сообщений: 12
14.12.2017, 17:30
Цитата Сообщение от Capi Посмотреть сообщение
Сделайте сначала на тех тестовых данных, которые выкладывали.
Сообщите результат.
Потом будем двигаться дальше.
А то уже две страницы топчемся на месте.
Сделал 2 таблицы с идентичными названиями и данными что писал в своем первом запросе ...

SELECT Test.*
FROM Test INNER JOIN ANY_Person ON
(Test.Born<>ANY_Person.Born) AND (Test.O=ANY_Person.O) AND (Test.I=ANY_Person.I) AND (Test.F=ANY_Person.F)

Система выдала мне 8 полей с повторяющимися ФИО и датой рождения

После добавления строчки

WHERE NOT (Test.O & Test.I & Test.F & Test.Born IN (SELECT O & I & F & Born FROM ANY_Person))

Выдает мне 2 записи
Макаров Макар Макарович 04.04.2004 ))))))))))))))

Ну благо прогресс наметился, буду думать дальше в этом направлении Спасибо Вам огромное
Если что надеюсь на повторную помощь!)
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
14.12.2017, 17:37
Напоминаю опять про кнопку +1Спасибо. Она как раз сделана для
Цитата Сообщение от BenderLog Посмотреть сообщение
Спасибо Вам огромное
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
14.12.2017, 17:42
Цитата Сообщение от BenderLog Посмотреть сообщение
Выдает мне 2 записи
Макаров Макар Макарович 04.04.2004 ))))))))))))))
Значит, тезок с разными датами в таблице ANY_Person двое.
Добавьте в запрос DISTINCT:
SQL
1
SELECT DISTINCT ТТ_Test.*
Да, и прислушайтесь к alvk по поводу кнопки "Спасибо".)))
1
0 / 0 / 0
Регистрация: 14.12.2017
Сообщений: 12
14.12.2017, 18:21
Цитата Сообщение от Capi Посмотреть сообщение
Добавьте в запрос DISTINCT:
УРАААААА ЗАРАБОТАЛО!)))))
Только думает почему-то очень и очень долго ...
кстати а сколько такой запрос будет обрабатываться если сравнить таблицу с 2000 ФИО
с таблицей более чем в 500 000 ФИО?

ну да Бог с ним, это уже лирика
Теперь осталось найти консоль для MS SQL и я стану работником месяца ... даже наверно года!))) правда уходящего!)))

Для тех кто не хочет листать всю тему целиком:
По моему запросу получилась вот такая вот формула

SELECT DISTINCT Test.*
FROM Test INNER JOIN ANY_Person ON
(Test.Born<>ANY_Person.Born) AND (Test.O=ANY_Person.O) AND (Test.I=ANY_Person.I) AND (Test.F=ANY_Person.F)
WHERE NOT (Test.O & Test.I & Test.F & Test.Born IN (SELECT O & I & F & Born FROM ANY_Person))

Долго думает, но работает!)

P.S.
Кстати, я заметил, если убрать DISTINCT то запрос исполняется молниеносно ... а вот если обратно добавить то на сравнение таблицы в 13 записей с таблицей в 300 записей тратится почти минута!
Почему так?
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
14.12.2017, 18:31
Цитата Сообщение от BenderLog Посмотреть сообщение
Кстати, я заметил, если убрать DISTINCT то запрос исполняется молниеносно ... а вот если обратно добавить то на сравнение таблицы в 13 записей с таблицей в 300 записей тратится почти минута
Потому, что ищутся совпадения, чтобы их исключить.
Наверное, мой запрос пока не идеален, сделан быстро - просто, чтобы общую идею ухватить.
Надо будет подумать над улучшением.
Может, завтра.

И вариант с Not ... In (....) очень медленный.
Надо что-то другое придумать.
1
0 / 0 / 0
Регистрация: 14.12.2017
Сообщений: 12
14.12.2017, 18:39
В общем я тут поэкпериментировал и понял ... та таблица которую я делал для сравнения изначально была некорректно сохранена, поэтому получаемого результата не достиг.

Я вновь переделал таблицу и все встало на свои места ... проверка идет молниеносно и точно!
Вот формула (даже в режиме конструктора):

SQL
1
2
3
4
5
6
7
8
9
10
SELECT Test.*
FROM Test LEFT JOIN ANY_Person
 ON (Test.Born=ANY_Person.Born)
 AND (Test.O=ANY_Person.O)
 AND (Test.I=ANY_Person.I)
 AND (Test.F=ANY_Person.F)
WHERE (((ANY_Person.F)IS NULL)
 AND (((ANY_Person.I)IS NULL)
 AND (((ANY_Person.O)IS NULL)
 AND (((ANY_Person.Born)IS NULL));
P.S.
Все равно всем огромное спасибо!)
Так или иначе проблема решена и по сути я в ней сам был виноват!)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.12.2017, 18:39

Как сравнить даты в VB?
Уважаемые мозги! Подскажите пожалуйста, каким образом можно выбрать данные за определенный месяц и год? Если ввожу в один TextBox месяц...

как сравнить даты?
в таблицу в колонку начало отпуска и конец отпуска вводятся даты.....необходимо определить к какому кварталу относятся эти даты,...

как сравнить даты ?
допустим есть переменные (даты): a = &quot;08/12/2005&quot; b = &quot;08/12/2008&quot; как определить раньше-позже?

Как сравнить даты?
У меня есть дата в формате dd.mm.YYYY, как мне сравнить эту дату с текущей?

Как сравнить даты?
Есть даты: 2012-05-26 11:15:00 2012-05-26 19:15:00 2012-05-26 19:15:00 Нужно вывести из дат записи, только за последние сутки,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru