在sql中查找给定年龄的出生年份

时间:2014-11-05 02:30:52

标签: sql oracle date-arithmetic

有人可以帮我解决这个问题,我知道我必须使用 sysdate 。例如,我有ATRIBUTES Emp.ID和Age的实体EMPLOYEE。

2 个答案:

答案 0 :(得分:1)

如果我们为ADD_MONTHS提供负数,则会从给定日期减去很多个月。将AGE乘以-12给出了我们需要从当前日期中减去以获得近似生日的月数。

SELECT Emp.ID
       , TO_CHAR(
            ADD_MONTHS(sysdate, (Emp.Age*-12))
           , 'YYYY') as year_of_birth
FROM employee Emp;

答案 1 :(得分:0)

这不准确,因为确切的月份未知

   SELECT id, Name, TRUNC(sysdate - age*365) as DOB FROM Employee