SQL - 计算出生年份的年龄

时间:2015-04-26 12:14:21

标签: mysql sql

我对SQL很陌生,慢慢地学习我的方式,但我仍然坚持我想做的事情。已经尝试过浏览来解决这个问题,但我无法理解它。

基本上我需要计算出生年份的年龄,然后将其乘以7以获得“人类年龄”。

所以我需要两个列来检索来自Dog_id和Name的数据,这些列来自一个名为“Dogs'”的表。在那张狗桌上,有一个死亡的专栏,其中列出了该犬死亡的年份。作为狗死亡时间的例子,有几年是2005年和2008年。所显示的数据必须在一个名为“人类年龄”的栏目中

到目前为止,我有: 选择dog_id,名称 来自狗 在哪里> ' 0'

我可以添加到上面的内容中,设置当前年份,获取死亡时的年龄,然后乘以7来获得人类年龄?

任何帮助都会非常感激,因为我很困难。

谢谢!

3 个答案:

答案 0 :(得分:0)

您可以使用DATE_SUB(NOW(), birth_year YEARS)DATE_ADD(NOW(), -birth_year YEARS)来获取年龄,然后直接乘以7:

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;

答案 1 :(得分:0)

SELECT dog_id,name,TIMESTAMPDIFF(YEAR,DIED,NOW())AS HUMAN_AGE FROM dogs;

你可以使用TIMESTAMPDIFF,它的参数是你想要表达结果的单位,以及两个可以取差异的日期。

答案 2 :(得分:0)

试试这个:

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