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

DATEDIFFOracleに存在する関数ではありません。

正確には、2つの日付の年の違いを取得することはあなたにとって何を意味しますか?たとえば、2010-04-01と2012-01-01の日付が与えられた場合、期待される出力は何ですか?違いは1年9か月なので、1.75になりますか?または、これらの9か月の日数と1年の日数を数え、答えを割って1.75とは少し異なるものを取得する必要がありますか?

私の最初の推測はあなたが欲しいということです

SELECT months_between( date_1, date_2 )/12 years_between
  FROM employee

1年の小数部分を無視したい場合

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