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

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

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

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

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

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

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

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

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

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

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

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


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