2

我正在使用 Oracle DB 并试图找到年份的日期差异。我用谷歌搜索,发现我可以使用DateDiff函数。当我使用此功能时:

select datediff(year, date_1, date_2) as Age_Diff 
 from employee

我收到一个错误

ORA-00904: "DATEDIFF": invalid identifier.

请提出这有什么问题。

4

1 回答 1

6

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

如果您想忽略一年的任何小数部分

SELECT floor( months_between( date_1, date_2 )/12) floor_years_between
  FROM employee
于 2012-10-11T18:31:01.157 回答