Как я могу узнать возраст человека, указав дату рождения в pl / sql или sql?

Это мой стол.

create table ator(
numero_identidade varchar2(10) NOT NULL,
numero_ss varchar2(20) NOT NULL,
dt_nascimento date NOT NULL,
nacionalidade varchar2(20) NOT NULL,
nome_artistico varchar2(40),
sexo char(1) NOT NULL,
idade number(2,0) NOT NULL,
primary key (numero_identidade),
CONSTRAINT sexo_a check (sexo = 'F' or sexo = 'M'));


SELECT DATEDIFF(idade,GETDATE())/8766 AS AgeYearsIntTrunc

Я видел эту команду в Интернете, но не понимаю, как ее использовать.

Как мне это сделать??


person Filipe Mota    schedule 15.12.2019    source источник
comment
Для чего это СУБД? Оракул? Пожалуйста, добавьте правильный тег.   -  person sticky bit    schedule 15.12.2019


Ответы (2)


Если вы используете СУБД Oracle, попробуйте:

SELECT TRUNC(MONTHS_BETWEEN(SYSDATE, dt_nascimento)/12) AS idade FROM your_table
person davidm    schedule 15.12.2019

Вот что вы видели:

> DATEDIFF(hour,idade,GETDATE())/8766 AS AgeYearsIntTrunc

Разницу в часах нужно разделить на количество часов в году: 365,25 * 24 = 8766. Это означает, что вы получите возраст в годах. Надеюсь на эту помощь. . Просто попробуй

select DATEDIFF(hour,idade,GETDATE())/8766 AS AgeYearsIntTrunc
from ator
person zip    schedule 15.12.2019
comment
ну, теперь я понимаю, что он делает, но я не могу заставить его работать :( - person Filipe Mota; 15.12.2019