![](/img/trans.png)
[英]SQL Incorrect syntax near '> when calculating age from date of birth
[英]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.