我对SQL很陌生,慢慢地学习我的方式,但我仍然坚持我想做的事情。已经尝试过浏览来解决这个问题,但我无法理解它。
基本上我需要计算出生年份的年龄,然后将其乘以7以获得“人类年龄”。
所以我需要两个列来检索来自Dog_id和Name的数据,这些列来自一个名为“Dogs'”的表。在那张狗桌上,有一个死亡的专栏,其中列出了该犬死亡的年份。作为狗死亡时间的例子,有几年是2005年和2008年。所显示的数据必须在一个名为“人类年龄”的栏目中
到目前为止,我有: 选择dog_id,名称 来自狗 在哪里> ' 0'
我可以添加到上面的内容中,设置当前年份,获取死亡时的年龄,然后乘以7来获得人类年龄?
任何帮助都会非常感激,因为我很困难。
谢谢!
答案 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