在SQL中,我需要计算已经死亡的马的年龄,然后将它乘以3以获得他们的人类年龄。
有一个名为'BORN'的列和一个名为'PASSED'的列,仅包含他们死亡的年份。
因此,我需要计算从BORN栏(他们出生的那一年)到PASSED栏(他们去世的年份)到达年龄的马的年龄,然后将这个数乘以3。然后我只需要在人类年份列出他们的horse_id,姓名和年龄,但我知道如何自己做这个选择陈述。
答案 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;