Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с Sql запросом (дата рождения и возраст) / 7 сообщений из 7, страница 1 из 1
06.02.2020, 08:32
    #39923185
dima_18
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Sql запросом (дата рождения и возраст)
Здравствуйте всем!

Подскажите пожалуйста ответ на следующий вопрос. Никак не могу догадаться. У меня есть даты рождения. Пример: 01.05.1980 и т.д.
А есть два текстовых поля: Text1 и Text 2
в них я пишу возраст: допустим : 35 и 42

и мне нужно выбрать людей от этого по такой возраст, но учитывая , что забиты люди, повторюсь, по дате рождения.

заранее большое спасибо!
...
Рейтинг: 0 / 0
06.02.2020, 08:47
    #39923186
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Sql запросом (дата рождения и возраст)
Сначала надо вычислить дату когда родились все 35 и старше.
Код: sql
1.
? date(year(date()) - 35, month(date()), day(date()))


затем так же когда родились все младше 42+1 лет.

В запросе выбирать тех кто родился между этими датами.

PS Еще 29 февраля надо учесть
...
Рейтинг: 0 / 0
06.02.2020, 08:58
    #39923190
dima_18
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Sql запросом (дата рождения и возраст)
Dima T, спасибо я не много не понял.
? date(year(date()) - 35, month(date()), day(date()))

А зачем нужна после запятой часть, т.е. month(date()), day(date()))
может напишешь простенький запрос.

Т.е. из Text1.Value
Text2.Value
я получаю диапазон возрастов

в таблице поле у меня: narush2.vozrast


Как написать:
where narush2.vozrast between .....and .......
...
Рейтинг: 0 / 0
06.02.2020, 09:13
    #39923193
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Sql запросом (дата рождения и возраст)
dima_18
Dima T, спасибо я не много не понял.
? date(year(date()) - 35, month(date()), day(date()))

А зачем нужна после запятой часть, т.е. month(date()), day(date()))
Для того, чтобы таки собрать дату, а не только один год. У функции Date() таки три параметра. Хотя мне кажется применение сей функции в данном случае сомнительным.может напишешь простенький запрос.А может простенькие запросы таки самостоятельно писать?
Т.е. из Text1.Value
Text2.Value
я получаю диапазон возрастовЕсли я правильно все понимаю, то из этих полей ты получаешь границы диапазона возрастов.
в таблице поле у меня: narush2.vozrastИ что в нем? Действительно возраст, то бишь число, или таки дата рождения, то бишь дата??
Как написать:
where narush2.vozrast between .....and .......А ответ на этот вопрос сильно зависит от ответа на предыдущий вопрос.
...
Рейтинг: 0 / 0
06.02.2020, 09:21
    #39923195
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Sql запросом (дата рождения и возраст)
date() без параметров возвращает текущую дату, с параметрами date(ГГ, ММ, ДД) возвращает заданую дату ДД.ММ.ГГ в формате даты.

Но можно проще, через GoMonth(), он 29 февраля учитывает.
Код: sql
1.
... where narush2.vozrast between GoMonth(date(), -12 * (ThisForm.Text2.value + 1))+1 and GoMonth(date(), -12 * (ThisForm.Text1.value))
...
Рейтинг: 0 / 0
06.02.2020, 09:33
    #39923200
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Sql запросом (дата рождения и возраст)
DimaНо можно проще, через GoMonth(), он 29 февраля учитывает.Вот именно на это я намекал при указании на сомнительность применения в данном случае функции Date(). Теперь только надо получить ответ на вопрос о типе данных в поле vozrast, а то если там число, то сей финт не пройдет. :)
...
Рейтинг: 0 / 0
06.02.2020, 13:48
    #39923383
dima_18
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с Sql запросом (дата рождения и возраст)
Большое спасибо всем за обсуждение.
Особая благодарность - Dima_T.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с Sql запросом (дата рождения и возраст) / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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