|
Тип данных "Дата/время". Распределение на основании разницы между текущей датой и заданной
|
|||
---|---|---|---|
#18+
Здравствуйте, прошу помощи. Специалистом в ИТ не являюсь, терминологией особо не владею, за что прошу извинить. Имеется таблица с 240 строками. В каждой строке одного поля обозначено ФИО человека в текстовом типе данных, а в соседнем поле для каждого указана дата рождения (тип данных дата/время). Требуется, чтобы программа, используя разницу между текущей датой и датой рождения, рассортировала все 240 чел. по 6-и возрастным категориям: 0 - 14 лет 15 - 17 лет 18 - 19 лет 20 - 39 лет 40 - 59 лет 60 лет и страше Таблица должна работать в режиме "реального времени", т.е. при достижении кем-то определенного возраста он автоматически должен переводится в соотв. возрастную категорию. Как это сделать? Буду благодарен за совет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 10:21 |
|
Тип данных "Дата/время". Распределение на основании разницы между текущей датой и заданной
|
|||
---|---|---|---|
#18+
Я бы добавил еще одну небольшую табличку или создал небольшой сохраненный запрос с тремя полями: начало и конец возрастной категории и текст с назваеием категории. А зптем фулл джоин на таблицу. А можно и так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 11:00 |
|
Тип данных "Дата/время". Распределение на основании разницы между текущей датой и заданной
|
|||
---|---|---|---|
#18+
Вот поосторожнее надо с DateDiff в MS Access... скажем, справка для Access 2007 сообщает, что первый параметр "y" означает вовсе даже не годы, а "день года" (шоб я понимал, что это значит). Так что лучше, используя DateAdd, отнимать от текущей даты необходимое количество лет (это, по крайней мере, работает корректно), а потом сравнивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 11:47 |
|
Тип данных "Дата/время". Распределение на основании разницы между текущей датой и заданной
|
|||
---|---|---|---|
#18+
Rivkin Dmitry, на пограничных возрастах запрос будет врать - переводить человека в следующий интервал, но день рождения ещё не наступил. Но если не принципиально... Лысёк, пример с пользовательской функцией. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 11:49 |
|
Тип данных "Дата/время". Распределение на основании разницы между текущей датой и заданной
|
|||
---|---|---|---|
#18+
\\\\, с интервалами ошибочка... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 11:54 |
|
Тип данных "Дата/время". Распределение на основании разницы между текущей датой и заданной
|
|||
---|---|---|---|
#18+
Да, с замечаниями согласен. Поспешил. Зациклился на решении... Надо бы DateDiff("yyyy"... но все равно не спасает на границвх, как отметил \\\\. Остался от решения только принцип доп таблицы... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 12:13 |
|
Тип данных "Дата/время". Распределение на основании разницы между текущей датой и заданной
|
|||
---|---|---|---|
#18+
Rivkin Dmitry, спасибо за совет. Я не спец, поэтому не знаю, где надо вводить этот код, который вы рекомендовали. Подскажите пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 12:55 |
|
Тип данных "Дата/время". Распределение на основании разницы между текущей датой и заданной
|
|||
---|---|---|---|
#18+
Лысёк, Код надо бы скопировать в построитель запросов, соответственно изменив названия полей и таблиц на свои. Но, проблема в том, что он (код) не совсем точен (см замечания). Его надо править в соотвтествии с замечаниями и искать наиболее точное решение ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 13:34 |
|
Тип данных "Дата/время". Распределение на основании разницы между текущей датой и заданной
|
|||
---|---|---|---|
#18+
Сделал таблицу: первое поле - название возрастного интервала, второе поле - возраст min, третье поле - возраст max. На этом застопорился. Как построить выражение, чтобы "возраст min" было равно "NOW" минус 15 лет и "возраст max" соответственно "NOW" минус 17 лет? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 13:47 |
|
Тип данных "Дата/время". Распределение на основании разницы между текущей датой и заданной
|
|||
---|---|---|---|
#18+
Поле "возраст min" в этом супе лишнее - у тебя же нет дырок? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 13:52 |
|
Тип данных "Дата/время". Распределение на основании разницы между текущей датой и заданной
|
|||
---|---|---|---|
#18+
Вот тебе вариант решения: Добавь модуль. Скопируй в него следующий код: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Теперь в запросе можешь просто писать Код: sql 1. 2.
и в поле [AgeCategory] будешь получать номер (от 1 до 6), соответствующий категории человека на текущую дату. PS. Сам бы за такое, наверное, удавил - но, во-первых, просто, во-вторых, при 240 записях пофиг. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 14:03 |
|
Тип данных "Дата/время". Распределение на основании разницы между текущей датой и заданной
|
|||
---|---|---|---|
#18+
Akina, спасибо, попробую ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 14:14 |
|
Тип данных "Дата/время". Распределение на основании разницы между текущей датой и заданной
|
|||
---|---|---|---|
#18+
Akina, выдает ошибку синтаксиса ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 14:51 |
|
Тип данных "Дата/время". Распределение на основании разницы между текущей датой и заданной
|
|||
---|---|---|---|
#18+
Лысёквыдает ошибку синтаксисаОчень содержательно. Где именно? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 14:54 |
|
Тип данных "Дата/время". Распределение на основании разницы между текущей датой и заданной
|
|||
---|---|---|---|
#18+
Akina, в общем, модуль сохранился. С этим что делать SELECT [FIO],[BirthDate],AgeCategory([BirthDate]) AS [AgeCategory] FROM [MyTable] (первый раз создаю БД, так что ещё мало что понимаю) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 15:02 |
|
Тип данных "Дата/время". Распределение на основании разницы между текущей датой и заданной
|
|||
---|---|---|---|
#18+
ЛысёкС этим что делать Выберите вкладку "Создание". Нажмите кнопку "Конструктор запросов". Закройте окно выбора таблиц. Наверху слева выберите "Режим SQL". Сотрите весь текст. Вставьте туда запрос, заменив название таблицы MyTable и имена полей FIO и BirthDate на свои. Закройте его с сохранением. Всё, можно открывать запрос и любоваться на итог. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 15:05 |
|
Тип данных "Дата/время". Распределение на основании разницы между текущей датой и заданной
|
|||
---|---|---|---|
#18+
Лысёк, готовые примеры не смотрим? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2015, 15:12 |
|
|
start [/forum/topic.php?fid=45&msg=39139311&tid=1614114]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 154ms |
0 / 0 |