需要计算马的年龄

时间:2015-04-29 05:01:19

标签: mysql sql

在SQL中,我需要计算已经死亡的马的年龄,然后将它乘以3以获得他们的人类年龄。

有一个名为'BORN'的列和一个名为'PASSED'的列,仅包含他们死亡的年份。

因此,我需要计算从BORN栏(他们出生的那一年)到PASSED栏(他们去世的年份)到达年龄的马的年龄,然后将这个数乘以3。然后我只需要在人类年份列出他们的horse_id,姓名和年龄,但我知道如何自己做这个选择陈述。

3 个答案:

答案 0 :(得分:1)

试用此代码,

SELECT horse_id, name, ((PASSED-BORN) * 3) As humanAge FROM horses WHERE PASSED IS NOT NULL;

答案 1 :(得分:0)

你会想要这样的东西:

SELECT horse_id, name, FLOOR((DATEDIFF(PASSED,BORN) / 365) * 3) As humanAge FROM horses WHERE PASSED IS NOT NULL;

编辑:我假设传递/出生的列是日期,我误解了这个问题。如果列为int数字的4位数年份,那么您可以使用类似:

的内容
SELECT horse_id, name, ((PASSED - BORN) * 3) As humanAge FROM horses WHERE PASSED IS NOT NULL;

如果列类型为varchar,那么您必须将PASSED更改为CAST(PASSED AS UNSIGNED)并BORN更改为CAST(BORN AS UNSIGNED)

答案 2 :(得分:0)

您还可以使用以下内容:

 SELECT horse_id, name,(DATEDIFF(YEAR,PASSED,BORN) * 3) As humanAge 
 FROM horses WHERE PASSED IS NOT NULL;