powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Привязка запроса к системной дате.
25 сообщений из 31, страница 1 из 2
Привязка запроса к системной дате.
    #35913476
Ёклмн
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вобщем есть таблица с данными из нее нужно вырезать всех людей которым исполнилось ну скажем 50 лет. Причем данные практически каждый день обновляются, т.е. приходит новая табличка с людьми и нужно также на текущий день вырезать всех кому стукнуло. Мысль есть пока только одна чтоб запрос сверял дату рождения с текущей датой на компе отсчитывал н-количество лет и исключал человека из списка. А вот как реализовать не знаю. Подскажите?
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35913481
Фотография simply
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
SELECT Таблица.ДатаРождения, Format(Date()-[ДатаРождения],'yy') AS Возвраст
FROM Таблица
WHERE (((Format(Date()-[ДатаРождения],'yy'))>= 50 ));
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35913498
Ёклмн
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
simply
Код: plaintext
1.
2.
SELECT Таблица.ДатаРождения, Format(Date()-[ДатаРождения],'yy') AS Возвраст
FROM Таблица
WHERE (((Format(Date()-[ДатаРождения],'yy'))>= 50 ));


Можно какой нить простенький пример??? Для полного понятия!!!
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35913502
Фотография simply
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотри запрос
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35913645
simply
Код: plaintext
1.
2.
SELECT Таблица.ДатаРождения, Format(Date()-[ДатаРождения],'yy') AS Возвраст
FROM Таблица
WHERE (((Format(Date()-[ДатаРождения],'yy'))>= 50 ));

Дата рождения (dr)Дата определения возраста (dc)Format(dc-dr,'yy')29.02.196001.03.20104928.02.196229.02.20124906.04.195906.04.200949
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35913713
AlexBessonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
SELECT ДатыРождения.ДатаРождения, ДатыРождения.ДатаОпределенияВозраста, DateDiff("yyyy",[ДатаРождения],[ДатаОпределенияВозраста]) AS Возраст
FROM ДатыРождения;

ДатаРожденияДатаОпределенияВозрастаВозраст29.02.196001.03.20105028.02.196229.02.20125006.04.195906.04.200950
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35913721
AlexBessonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для топикстартера ответ соответственно выглядит так:
Код: plaintext
1.
2.
SELECT ДатыРождения.ДатаРождения, DateDiff("yyyy",[ДатаРождения],Date()) AS Возраст
FROM ДатыРождения
WHERE DateDiff("yyyy",[ДатаРождения],Date())>= 50 ;
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35913755
AlexBessonov
Код: plaintext
1.
SELECT ДатыРождения.ДатаРождения, ДатыРождения.ДатаОпределенияВозраста, DateDiff("yyyy",[ДатаРождения],[ДатаОпределенияВозраста]) AS Возраст
FROM ДатыРождения;

dr=#12/31/1959#
dc=#01/01/2009#
?DateDiff("yyyy",dr,dc)
50
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35913861
AlexBessonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверяющийdr=#12/31/1959#
dc=#01/01/2009#
?DateDiff("yyyy",dr,dc)
50
Прикольно!!! Ты где такие примеры находишь?
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35913890
AlexBessonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так?
Код: plaintext
1.
2.
SELECT ДатыРождения.ДатаРождения, Int(DateDiff("m",[ДатаРождения],Date())/ 12 ) AS Возраст
FROM ДатыРождения
WHERE Int(DateDiff("m",[ДатаРождения],Date())/ 12 )>= 50 ;
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35913891
AlexBessonovПроверяющийdr=#12/31/1959#
dc=#01/01/2009#
?DateDiff("yyyy",dr,dc)
50
Прикольно!!! Ты где такие примеры находишь?
HelpПри сравнении дат 31 декабря и 1 января следующего года функция DateDiff для интервала типа год ("yyyy") возвращает значение 1, хотя разница между датами составляет всего один день.
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35913897
AlexBessonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну хотя-бы в пределах месяца такая конструкция работать будет Хотя конечно не ожидал от этой функции такой "подлости"
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35913902
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Воспользуясь шаблоном AlexBessonov
Код: plaintext
1.
2.
SELECT ДатыРождения.ДатаРождения
FROM ДатыРождения
WHERE (Date()-DateSerial(Year([ДатаРождения]) +  50 , Month([ДатаРождения]), Day([ДатаРождения]))> 0 
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35913912
AlexBessonovА так?
Код: plaintext
1.
2.
SELECT ДатыРождения.ДатаРождения, Int(DateDiff("m",[ДатаРождения],Date())/ 12 ) AS Возраст
FROM ДатыРождения
WHERE Int(DateDiff("m",[ДатаРождения],Date())/ 12 )>= 50 ;

dr=#04/30/1959#
dc=#04/01/2009#
?Int(DateDiff("m",dr,dc)/12)
50
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35913959
AlexBessonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверяющий
dr=#04/30/1959#
dc=#04/01/2009#
?Int(DateDiff("m",dr,dc)/12)
50
Да я уж следующим постом написал, что такая конструкция может определить только, что в этом месяце человеку исполняется 50 лет. О точности никакой речи нет.

mds_world, класс! Только наверное надо так:
Код: plaintext
WHERE (Date()-DateSerial(Year([ДатаРождения]) +  50 , Month([ДатаРождения]), Day([ДатаРождения]))>= 0 
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35914035
AlexBessonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверяющий:
Код: plaintext
1.
2.
SELECT ДатыРождения.ДатаРождения, ДатыРождения.ДатаОпределенияВозраста, IIf(([ДатаОпределенияВозраста]-DateSerial(Year([ДатаРождения])+ 50 ,Month([ДатаРождения]),Day([ДатаРождения])))>= 0 ,Year([ДатаОпределенияВозраста])-Year([ДатаРождения]),Year([ДатаОпределенияВозраста])-Year([ДатаРождения])- 1 ) AS Возраст
FROM ДатыРождения
WHERE ([ДатаОпределенияВозраста]-DateSerial(Year([ДатаРождения]) +  50 , Month([ДатаРождения]), Day([ДатаРождения])))>= 0 ;
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35914050
AlexBessonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, ступил
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35914103
mds_world, с учетом поправки AlexBessonov, изъянов не нашел . Однако все отвечающие пытались определить, хотя в ТЗ об этом как-то невнятно сказано, еще и возраст в годах. Вы же этот вопрос проигнорировали.
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35914167
AlexBessonovПроверяющий:
Код: plaintext
1.
2.
SELECT ДатыРождения.ДатаРождения, ДатыРождения.ДатаОпределенияВозраста, IIf(([ДатаОпределенияВозраста]-DateSerial(Year([ДатаРождения])+ 50 ,Month([ДатаРождения]),Day([ДатаРождения])))>= 0 ,Year([ДатаОпределенияВозраста])-Year([ДатаРождения]),Year([ДатаОпределенияВозраста])-Year([ДатаРождения])- 1 ) AS Возраст
FROM ДатыРождения
WHERE ([ДатаОпределенияВозраста]-DateSerial(Year([ДатаРождения]) +  50 , Month([ДатаРождения]), Day([ДатаРождения])))>= 0 ;

Подсказка
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35914205
AlexBessonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
SELECT ДатыРождения.ДатаРождения, ДатыРождения.ДатаОпределенияВозраста, IIf(([ДатаОпределенияВозраста]-DateSerial(Year([ДатаОпределенияВозраста]),Month([ДатаРождения]),Day([ДатаРождения])))>= 0 ,Year([ДатаОпределенияВозраста])-Year([ДатаРождения]),Year([ДатаОпределенияВозраста])-Year([ДатаРождения])- 1 ) AS Возраст
FROM ДатыРождения;
ДатаРождения ДатаОпределенияВозраста Возраст29.02.1960 01.03.2010 5028.02.1962 29.02.2012 5006.04.1959 06.04.2009 5030.04.1959 01.04.2009 4931.12.1959 01.01.2009 49
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35914231
AlexBessonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подмастерье Подсказка
Сидел доводил до ума запрос, поэтому не видел ссылки на подсказку. Щас покопаюсь.
Но все-таки - как моя конструкция (спасибо огромное mds_world) для определения возраста? (как отсортировать уже было показано, поэтому делать не стал, а поэкспериментировал с вашими данными)
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35914252
AlexBessonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Единственно, меня смущает как акц будет отрабатывать 29 февраля не високосного года. Но самое удивительное - что ошибки никакой не выдает. Я в легком шоке
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35914370
AlexBessonovНо все-таки - как моя конструкция (спасибо огромное mds_world) для определения возраста?
Как будто работоспособная, но тяжеловесная. Можно, учитывая подсказку Подмастерье, ее несколько облегчить.
авторЕдинственно, меня смущает как акц будет отрабатывать 29 февраля не високосного года. Но самое удивительное - что ошибки никакой не выдает.
Можете еще больше удивиться
?DateSerial(2009,15,61)
30.04.2010
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35914511
AlexBessonov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверяющий...учитывая подсказку Подмастерье, ее несколько облегчить...
Пытаюсь осмыслить. То есть при прибавлении логического значения True к целочисленному происходит уменьшение на единицу, а при False - значение не изменяется?
...
Рейтинг: 0 / 0
Привязка запроса к системной дате.
    #35914525
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверяющийmds_world, с учетом поправки AlexBessonov, изъянов не нашел . Однако все отвечающие пытались определить, хотя в ТЗ об этом как-то невнятно сказано, еще и возраст в годах. Вы же этот вопрос проигнорировали.
Вообще-то в ТЗ вопроса такого не было.

Тем не менее.
Код: plaintext
1.
2.
3.
SELECT ДатаРождения, ДатаОпредВозраста, DateDiff("yyyy", ДатаРождения, ДатаОпредВозраста) + 
(ДатаОпредВозраста - DateSerial(Year(ДатаОпредВозраста), Month(ДатаРождения), Day(ДатаРождения)) <  0 ) AS Возраст
FROM ДатыРождения
WHERE ([ДатаОпредВозраста]-DateSerial(Year([ДатаРождения]) +  50 , Month([ДатаРождения]), Day([ДатаРождения])))>= 0 ;
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Привязка запроса к системной дате.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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