【问题标题】:SQL - Calculating age from year of birthSQL - 从出生年份计算年龄
【发布时间】:2015-04-26 12:14:21
【问题描述】:

我对 SQL 很陌生,慢慢地学习我的方法,但我非常坚持我正在尝试做的事情。已尝试浏览以弄清楚这一点,但我无法理解它。

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

所以我有两列需要从中检索数据,分别称为 Dog_id 和 Name,它们来自名为“Dogs”的表。在那个狗表中,有一个 dead 列,其中列出了狗已经死亡的年份。以狗死亡的几年为例,分别是 2005 年和 2008 年。显示的数据必须在名为“人类年龄”的列中

到目前为止,我有: 选择 dog_id、名字 从狗 死亡地点 > '0'

我可以在上面添加什么,设置当前年份,获取它死亡时的年龄,然后乘以 7 得到狗的人类年龄?

非常感谢任何帮助,因为我非常困难。

谢谢!

【问题讨论】:

  • 表格中有出生日期/年份吗?

标签: mysql sql


【解决方案1】:

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

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

【讨论】:

  • 嗨。我很感激你的回复,我真的很喜欢。我还是有点糊涂,抱歉。当我输入时:
  • 抱歉,您可以将差值乘以 7 来获得人类年龄。 SELECT dog_id, name, TIMESTAMPDIFF(YEAR,DIED ,NOW())*7 AS HUMAN_AGE FROM dogs;
  • 嗯,我一定是做错了什么,对不起,如果我很痛苦,我只是很困惑。我知道我不应该在论坛上寻找问题的答案,但不幸的是,我已经被这个问题困住了好几天。基本上我的问题是:计算死狗的年龄,然后乘以 7 得到它们的人类年龄。列出他们的 dog_id、名字和“人类年龄”。表格中有一个名为“BORN”的列,其中只有狗出生的年份,例如 1990。死列,只有狗死的年份,例如 2009。
【解决方案2】:

试试这个:

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

【讨论】:

    【解决方案3】:

    你可以用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, (YEAR(NOW()) -birth_year)*7 AS Human_Age from Dogs 但由于某种原因,它会返回结果为 61,当我在这里有答案,应该是 24 :/
    • 现在是 YEAR (NOW ()) -birth_year 而不是 YEAR (NOW () -birth_year)。仔细检查双亲。
    • 嗯,当我按照你说的输入它时,我得到错误 1064。当我按上面输入它时,我得到结果,但不是正确的。为什么这个问题必须这么难哈哈。
    • 对不起,因为在我的手机上打开它而误读了。 SELECT dog_id, name, (YEAR(NOW()) -birth_year)*7 AS Human_Age from Dogs WHERE dead > 0 应该给你正确的结果。您可能忘记添加 where 条件。你能试试这个吗?我编辑了我的答案以包括这个,顺便说一句
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 2019-12-12
    • 2017-05-26
    • 1970-01-01
    相关资源
    最近更新 更多