SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » Узнать полный возраст человека на конкретную дату
Узнать полный возраст человека на конкретную дату [сообщение #2061] Fri, 14 April 2023 20:19 Переход к следующему сообщению
GrigoryFomin в настоящее время не в онлайне  GrigoryFomin
Сообщений: 90
Зарегистрирован: April 2023
Member
Доброго дня. Долго искал ответ, решения в основном для мускуля и мсскл есть, для Firebird 3 не нашел. Использовал datediff, ноон не учитывает был ли уже ДР у человека в этом году или нет, вообщем, не всегда правильно считает. Подскажите рабочий вариант расчета полного возраста в годах или как говорят врачи - полных лет.
Заранее спасибо
Re: Узнать полный возраст человека на конкретную дату [сообщение #2064 является ответом на сообщение #2061] Fri, 14 April 2023 23:02 Переход к предыдущему сообщениюПереход к следующему сообщению
shalamyansky в настоящее время не в онлайне  shalamyansky
Сообщений: 141
Зарегистрирован: August 2022
Senior Member
-- birthday is input parameter

birthyear    = extract( YEAR from birthday );
current_year = extract( YEAR from current_date );
age          = current_year - birthyear;
age          = iif( extract( YEARDAY from current_date ) >= extract( YEARDAY from birthday ), age, age - 1 );
Это чисто умозрительно, не проверял. Не видно, что там может пойти не так.

[Обновления: Fri, 14 April 2023 23:07]

Известить модератора

Re: Узнать полный возраст человека на конкретную дату [сообщение #2065 является ответом на сообщение #2064] Fri, 14 April 2023 23:11 Переход к предыдущему сообщениюПереход к следующему сообщению
GrigoryFomin в настоящее время не в онлайне  GrigoryFomin
Сообщений: 90
Зарегистрирован: April 2023
Member
вы бы полный скрипт привели бы Smile))) языками не владею. Паки-паки, иже Хирувимы Smile))) Можно в виде хранимки? на входе 2 даты, на выходе - полных лет?

[Обновления: Fri, 14 April 2023 23:12]

Известить модератора

Re: Узнать полный возраст человека на конкретную дату [сообщение #2066 является ответом на сообщение #2065] Fri, 14 April 2023 23:17 Переход к предыдущему сообщениюПереход к следующему сообщению
shalamyansky в настоящее время не в онлайне  shalamyansky
Сообщений: 141
Зарегистрирован: August 2022
Senior Member
- Что, и конфеты за меня есть будете?
- Ага!

("Вовка в тридесятом царстве")
Re: Узнать полный возраст человека на конкретную дату [сообщение #2067 является ответом на сообщение #2066] Fri, 14 April 2023 23:18 Переход к предыдущему сообщениюПереход к следующему сообщению
GrigoryFomin в настоящее время не в онлайне  GrigoryFomin
Сообщений: 90
Зарегистрирован: April 2023
Member
ну пожалуста Smile)))))
Re: Узнать полный возраст человека на конкретную дату [сообщение #2068 является ответом на сообщение #2067] Fri, 14 April 2023 23:29 Переход к предыдущему сообщениюПереход к следующему сообщению
shalamyansky в настоящее время не в онлайне  shalamyansky
Сообщений: 141
Зарегистрирован: August 2022
Senior Member
create function calculate_age(
    birthday date
  , otherday date
)returns
    integer
as
    declare variable birthyear integer;
    declare variable otheryear integer;
    declare variable age       integer;
begin

    birthyear = extract( year from birthday );
    otheryear = extract( year from otherday );
    age       = otheryear - birthyear;
    age       = iif( extract( yearday from otherday ) >= extract( yearday from birthday ), age, age - 1 );

    return age;
end
Вот вам функция. И где мой коньяк?
Re: Узнать полный возраст человека на конкретную дату [сообщение #2069 является ответом на сообщение #2068] Fri, 14 April 2023 23:37 Переход к предыдущему сообщениюПереход к следующему сообщению
GrigoryFomin в настоящее время не в онлайне  GrigoryFomin
Сообщений: 90
Зарегистрирован: April 2023
Member
пока не проверил функцию, но готов выставить квинтовский 10 лет. Куда отправить? Smile)) Тирасполь
Re: Узнать полный возраст человека на конкретную дату [сообщение #2070 является ответом на сообщение #2069] Fri, 14 April 2023 23:48 Переход к предыдущему сообщениюПереход к следующему сообщению
shalamyansky в настоящее время не в онлайне  shalamyansky
Сообщений: 141
Зарегистрирован: August 2022
Senior Member
Неплохо. Раз такое дело, готов бонусом написать функцию, которая будет вычислять не только возраст коньяка, но и число звезд. Отправлять в Москву, однако, могут быть проблемы с доставкой. Ладно, отложим пока должок. Но в уме держать будем!
Re: Узнать полный возраст человека на конкретную дату [сообщение #2071 является ответом на сообщение #2070] Sat, 15 April 2023 00:04 Переход к предыдущему сообщениюПереход к следующему сообщению
GrigoryFomin в настоящее время не в онлайне  GrigoryFomin
Сообщений: 90
Зарегистрирован: April 2023
Member
Будете у нас проездом - должок не заржавеет. До МСК логистика все сожрет, или голодные еуропейцы Smile))
Re: Узнать полный возраст человека на конкретную дату [сообщение #2077 является ответом на сообщение #2071] Sun, 16 April 2023 01:00 Переход к предыдущему сообщению
shavluk в настоящее время в онлайне  shavluk
Сообщений: 65
Зарегистрирован: June 2022
Географическое положение: Одеса
Member
Эх... Не успел я помочь... В Одессу из Тирасполя всяко ближе Smile
Предыдущая тема: Access violation на битой базе
Следующая тема: Как правильно остановить сервер Firebird?
Переход к форуму:
  


Текущее время: Tue Apr 16 16:53:18 GMT+3 2024

Общее время, затраченное на создание страницы: 0.01243 секунд