|
Запрос по дате foxpro 9.0
|
|||
---|---|---|---|
#18+
Здравствуйте! Нужно сделать выборку из таблицы, выбрать всех мужчин младше 50 лет. В таблице два поля- дата рождения и пол. Не могу понять какое условие нужно использовать для вычисления возраста. Заранее спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2021, 12:37 |
|
Запрос по дате foxpro 9.0
|
|||
---|---|---|---|
#18+
lazlo Не могу понять какое условие нужно использовать для вычисления возраста. наверно такое Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2021, 12:52 |
|
Запрос по дате foxpro 9.0
|
|||
---|---|---|---|
#18+
Dima T, При подобном условии в результирующую таблицу выводятся абсолютно все значения. Возможно, я не совсем корректно выразился, прошу прощения за мою не компетентность, в foxpro работаю буквально неделю. Само задание звучит так: "- написать SELECT (№1) для выборки всех мужчин в возрасте младше 50 лет". Скриншот таблицы ниже. Подскажите как сделать такую выборку? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2021, 13:13 |
|
Запрос по дате foxpro 9.0
|
|||
---|---|---|---|
#18+
Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2021, 13:34 |
|
Запрос по дате foxpro 9.0
|
|||
---|---|---|---|
#18+
Dima T, SELECT from kadry WHERE (KADRY.POL="М" AND KADRY.DATAR > GOMONTH(DATE({^1985.02.02})); При таком написании выдает ошибку, что нужно исправить? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2021, 13:46 |
|
Запрос по дате foxpro 9.0
|
|||
---|---|---|---|
#18+
lazlo Dima T, SELECT from kadry WHERE (KADRY.POL="М" AND KADRY.DATAR > GOMONTH(DATE({^1985.02.02})); При таком написании выдает ошибку, что нужно исправить? Я разве так писал выше? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2021, 13:51 |
|
Запрос по дате foxpro 9.0
|
|||
---|---|---|---|
#18+
так надо писать если дату знаешь Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2021, 13:54 |
|
Запрос по дате foxpro 9.0
|
|||
---|---|---|---|
#18+
Dima T, Извините, не заметил, что вставил не тот кусок в сообщение. SELECT from kadry WHERE datar > GOMONTH(DATE(1983.02.03), - 600) Вот при таком написании выдает ошибку ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2021, 13:58 |
|
Запрос по дате foxpro 9.0
|
|||
---|---|---|---|
#18+
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) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2021, 14:00 |
|
Запрос по дате foxpro 9.0
|
|||
---|---|---|---|
#18+
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 года? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2021, 15:24 |
|
|
start [/forum/topic.php?fid=41&tid=1581440]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 243ms |
total: | 393ms |
0 / 0 |