2015-04-26 262 views
3

對於SQL來說,這是一個相當新的東西,正在慢慢地學習我的方式,但是我非常堅持我正在嘗試做的事情。已經嘗試瀏覽瞭解這一點,但我無法理解它。SQL - 從出生年份開始計算年齡

基本上我需要計算出生年份的年齡,然後乘以7來得到'人類年齡'。

所以我有兩列需要從稱爲Dogs的表中獲取名爲Dog_id和Name的數據。在那張狗桌上,有一個死亡專欄,列出了狗死亡的年份。幾年當狗已經死亡的例子,是2005年和2008年顯示的數據必須是在一個名爲「人類時代」

到目前爲止專欄中,我有: 選擇dog_id,名 FROM狗 哪裏去過>'0'

我可以在上面添加什麼,設置當前年份,從死亡時間獲取年齡,並且乘以7得到狗人類年齡?

任何幫助將非常感激,因爲我很困難。

謝謝!

+0

你在表中有出生日期/年? –

回答

0

您可以通過7使用DATE_SUB(NOW(), birth_year YEARS)DATE_ADD(NOW(), -birth_year YEARS)獲取年齡,然後直接乘:

SELECT dog_id, name DATE_SUB(NOW(), birth_year YEARS)*7 AS Human_Age 
FROM dogs 
WHERE died > 0; 

另一種選擇是

SELECT dog_id, name DATE_SUB(NOW(), (YEAR(NOW()) - birth_year)*7 AS Human_Age 
FROM dogs 
WHERE died > 0; 
+0

對不起,我仍然無法弄清楚這個:(這個問題是如此令我困惑:( – Greg1994

+0

什麼是完全不清楚? –

+0

我試過這樣說: 選擇dog_id,名稱,(年(NOW() ) - birth_year)* 7 AS作爲Human_Age狗 但由於某種原因,它帶來的結果如61說,當我在這裏的答案,它的意思是24:/ – Greg1994

0

SELECT dog_id,名稱,TIMESTAMPDIFF(年,死了,NOW ())作爲人類的狗;

您可以使用TIMESTAMPDIFF,它的參數是您希望表達結果的單位,以及兩個日期之間的差異。

+0

嗨。我很欣賞這個答覆,我真的這麼做。 我只是有點困惑,對不起。 當我輸入: – Greg1994

+0

對不起,你可以乘以7來獲得人類年齡。SELECT dog_id,name,TIMESTAMPDIFF(YEAR,DIED,NOW())* 7作爲來自狗的HUMAN_AGE; – quintin

+0

嗯,我必須做錯了什麼,對不起,如果我是一個痛苦,我只是很困惑。 我知道我不應該在論壇上尋找問題的答案,但不幸的是我一直在這個問題上停留了幾天。 基本上我的問題是: 計算死亡的狗的年齡,並乘以7來獲得他們的人類年齡。列出他們的dog_id,姓名和「人類年齡」。 在表格中有一列名爲'BORN'的專欄,該專欄只有狗出生的年份,例如1990年。死去的專欄只有狗死於2009年的一年。 – Greg1994

0

嘗試了這一點:

SELECT (YEAR(CURDATE()) - year) * 7 AS diedYearsAgo, Dog_id, Name 
FROM Dogs