FROM_DAYS
mysql で関数を使用する際に問題が発生しました。my_table から年齢を取得したいのですが、これが私のクエリです。
select dob,CURRENT_DATE,
DATE_FORMAT(FROM_DAYS(DATEDIFF(CURRENT_DATE,dob)),'%y yr %c mth %e dy') AS age,
DATEDIFF(CURRENT_DATE,dob) days from my_table
結果:
dob || CURRENT_DATE || age || days ||
==========++==============++==================++=======++
1953-09-10|| 2013-09-12 || 60 yr 1 mth 3 dy || 21917 ||
2013-09-08|| 2013-09-12 || 00 yr 0 mth 0 dy || 4 ||
FROM_DAYS(DATEDIFF(CURRENT_DATE,m.tgllahir))
2列目でやってみた結果がこれ0000-00-00
そして、日付と時刻の関数を調べてみたところ、これが見つかりました
SELECT FROM_DAYS(730669);
-> '2007-07-03'
しかし、私が試したとき、これが得られました。
SELECT FROM_DAYS(730669);
-> '2000-07-03'
FROM_DAYS
関数が適切に機能しない理由が気になりますが、私の主な問題は年齢を見つける方法ですか?
編集
Barmarと話し合った結果、FROM_DAYSを使用して正確な年齢を取得できないことがわかったので、別の方法を見つけようとしました