oracle DB中的日期日期差异年数

Moh*_*224 1 oracle10g

我正在使用Oracle DB并尝试查找多年的日期差异.我用谷歌搜索,发现我可以使用DateDiff功能.当我使用此功能时:

select datediff(year, date_1, date_2) as Age_Diff 
 from employee
Run Code Online (Sandbox Code Playgroud)

我收到了一个错误

ORA-00904: "DATEDIFF": invalid identifier.
Run Code Online (Sandbox Code Playgroud)

请说明这有什么问题.

Jus*_*ave 5

DATEDIFF 不是Oracle中存在的函数.

究竟是什么意味着要在两年中获得两个日期之间的差异?例如,如果您获得2010-04-01和2012-01-01的日期,那么预期的产出是多少?差异是1年9个月,那么是1.75?或者我们应该计算这9个月中的天数与一年中的天数之间的差异,并将答案除以得出略微不同于1.75的天数?

我的第一个猜测就是你想要的

SELECT months_between( date_1, date_2 )/12 years_between
  FROM employee
Run Code Online (Sandbox Code Playgroud)

如果你想忽略一年中任何一小部分

SELECT floor( months_between( date_1, date_2 )/12) floor_years_between
  FROM employee
Run Code Online (Sandbox Code Playgroud)