繁体   English   中英

SQL - 计算出生年份的年龄

[英]SQL - Calculating age from year of birth

对SQL来说还是个新手,慢慢地学习我的方式,但我非常坚持我正在尝试做的事情。 已经尝试过浏览来解决这个问题,但我无法理解它。

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

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

到目前为止,我有:选择dog_id,名字FROM狗WHERE DIED>'0'

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

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

谢谢!

您可以使用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;

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

您可以使用TIMESTAMPDIFF,它的参数是您希望表达结果的单位,以及获取差异的两个日期。

试试这个:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM