Гость
Map
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Запрос по дате foxpro 9.0 / 12 сообщений из 12, страница 1 из 1
09.08.2021, 12:37
    #40089677
lazlo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по дате foxpro 9.0
Здравствуйте! Нужно сделать выборку из таблицы, выбрать всех мужчин младше 50 лет.
В таблице два поля- дата рождения и пол. Не могу понять какое условие нужно использовать для вычисления возраста.

Заранее спасибо!
...
Рейтинг: 0 / 0
09.08.2021, 12:52
    #40089680
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по дате foxpro 9.0
lazlo
Не могу понять какое условие нужно использовать для вычисления возраста.

наверно такое
Код: sql
1.
дата_рождения > ...
...
Рейтинг: 0 / 0
09.08.2021, 13:13
    #40089683
lazlo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по дате foxpro 9.0
Dima T,

При подобном условии в результирующую таблицу выводятся абсолютно все значения.
Возможно, я не совсем корректно выразился, прошу прощения за мою не компетентность, в foxpro работаю буквально неделю.
Само задание звучит так: "- написать SELECT (№1) для выборки всех мужчин в возрасте младше 50 лет".
Скриншот таблицы ниже. Подскажите как сделать такую выборку?
...
Рейтинг: 0 / 0
09.08.2021, 13:34
    #40089685
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по дате foxpro 9.0
Код: sql
1.
... where datar > gomonth(date(), -600) ...
...
Рейтинг: 0 / 0
09.08.2021, 13:46
    #40089687
lazlo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по дате foxpro 9.0
Dima T,

SELECT from kadry WHERE (KADRY.POL="М" AND KADRY.DATAR > GOMONTH(DATE({^1985.02.02}));

При таком написании выдает ошибку, что нужно исправить?
...
Рейтинг: 0 / 0
09.08.2021, 13:51
    #40089689
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по дате foxpro 9.0
lazlo
Dima T,

SELECT from kadry WHERE (KADRY.POL="М" AND KADRY.DATAR > GOMONTH(DATE({^1985.02.02}));

При таком написании выдает ошибку, что нужно исправить?

Я разве так писал выше?
...
Рейтинг: 0 / 0
09.08.2021, 13:54
    #40089692
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по дате foxpro 9.0
так надо писать если дату знаешь
Код: sql
1.
KADRY.DATAR > {^1985.02.02}
...
Рейтинг: 0 / 0
09.08.2021, 13:58
    #40089693
lazlo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по дате foxpro 9.0
Dima T,

Извините, не заметил, что вставил не тот кусок в сообщение.
SELECT from kadry WHERE datar > GOMONTH(DATE(1983.02.03), - 600)
Вот при таком написании выдает ошибку
...
Рейтинг: 0 / 0
09.08.2021, 14:00
    #40089694
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по дате foxpro 9.0
lazlo
Dima T,

Извините, не заметил, что вставил не тот кусок в сообщение.
SELECT from kadry WHERE datar > GOMONTH(DATE(1983.02.03), - 600)
Вот при таком написании выдает ошибку


SELECT * from kadry WHERE datar > GOMONTH(DATE(1983.02.03), - 600)
...
Рейтинг: 0 / 0
09.08.2021, 15:24
    #40089712
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по дате foxpro 9.0
lazlo
GOMONTH(DATE(1983.02.03), - 600)


1. В FoxPro в качестве разделителя параметров выступает символ запятой. Т.е. в функции Date() надо разделить числа запятыми
2. Константа типа Date - это обрамление в фигурных скобках.
2.1. Если после открывающей фигурной скобки сразу число стоит, то порядок следования года, месяца и дня определяется настройкой Set Date, что не очень удобно
2.2. Если после открывающей фигурной скобки ставится символ ^, то это указание на то, что дата указывается в формате ГГГГ.ММ.ДД

Т.е. Вам надо или так = Date(1983,02,03) - запятые внутри функции Date().
Или так {^1983.02.03} - константа типа Date

3. Функция GoMonth() к указанной в первом параметре дате прибавляет указанное количество месяцев. Если количество с минусом, то вычитает

600 месяцев = 600/12 = 50 лет

Если из 03.02.1983 вычесть 50 лет, то получим дату 03.02.1933.

Вы точно хотите выбрать людей, дата рождения которых после 1933 года? Т.е. 50 лет отсчитываете не от текущей даты, а от 1983 года?
...
Рейтинг: 0 / 0
09.08.2021, 15:25
    #40089713
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по дате foxpro 9.0
lazlo,

22357231
...
Рейтинг: 0 / 0
09.08.2021, 15:44
    #40089719
lazlo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос по дате foxpro 9.0
ВладимирМ,

Да, мне нужны люди дата рождения которых начинается с 1933 г.
Спасибо за разъяснения!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Запрос по дате foxpro 9.0 / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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