2013-12-09 60 views
0

計算時代,以下是我在計算來自誰在我的桌上最年長的人的生日嘗試:SQL - 從生日記錄

select firstname, 
datediff(year(curtime()), min(year(birthday))) 
from TABLE_A ; 

查詢返回NULL。

我想我已經忘記了這是如何完成的。我很可能錯過簡單的東西。

+1

這是什麼RDBMS? –

回答

1

Mysql的

SELECT year(NOW())- year(birthday)) 
FROM table WHERE condition 
ORDER BY dateField ASC LIMIT 1 

Sql Server的

SELECT TOP 1 DATEDIFF(YEAR, birthday, GETDATE()) 
FROM Table_A 
ORDER BY birthday ASC 
+0

'CURTIME()'不是你想要的。 –

1

的參數DATEDIFF()應該日期;而YEAR()的結果是僅表示日期年的整數。如果你正在尋找獲得最年長的人的年齡在TABLE_A,您可以使用MySQL的TIMESTAMPDIFF()功能:

SELECT TIMESTAMPDIFF(YEAR, MIN(birthday), CURRENT_DATE) FROM TABLE_A 
0
SELECT YEAR(TIMEDIFF(NOW(),MIN(birthday))) FROM TABLE_A 

SELECT TIMESTAMPDIFF(YEAR, MIN(birthday), NOW()) FROM TABLE_A 

的MySQL的日期和時間函數This list將是有益的。

+0

我不會使用NOW(),因爲我們通常認爲這是他們整天的生日。 –

+0

這真的很重要嗎?年齡取決於年份的價值。你會推薦使用什麼? – Matt