2017-05-28 7 views
1

私は最も古い人物の年齢を計算し、グループからその牡丹を表示しようとしています。SQLite 3 Max()function

以下、このコードは、このコードは私のすべての人々との正しい年齢(マーグレット、58)

SELECT FirstName as Name, 
    (strftime('%Y', 'now') - strftime('%Y', BirthDate)) 
    - (strftime('%m-%d', 'now') < strftime('%m-%d', BirthDate)) as Age 
FROM Employee; 
を与えてくれ、右の人を与えるが、間違った年齢(マーグレット、69)

SELECT FirstName as Name, 
max((strftime('%Y', 'now') - strftime('%Y', BirthDate)) 
    - (strftime('%m-%d', 'now') < strftime('%m-%d', BirthDate))) as Age 
FROM Employee; 

誰かが説明してくれますか?

+0

SQLiteバージョン? –

答えて

0

は、それはおそらくあなたのBirthDateでは、定義された方法によって異なりますが、それはsqlite3の標準YYYY-MM-DDの試みである場合:

SELECT FirstName as Name, CAST((julianday('now') - julianday(BirthDate))/365 AS INTEGER) as age 
    FROM Employee; 

SELECT FirstName as Name, max(CAST((julianday('now') - julianday(BirthDate))/365 AS INTEGER)) as age 
    FROM Employee;