迷惑MySQL计算

时间:2017-09-11 04:27:31

标签: mysql

我在我的数据库课程中的“使用结构化查询语言”模块中需要回答一个问题,我仍然坚持其中一个问题。

以下是问题:

计算死亡的马的年龄并将其乘以3以获得可比的人类年龄。列出他们的horse_id,名字和“人类年龄”。按horse_id订购。

以下是我一直在努力实现这一目标的问题,但我得到的数字是人类时代的重要数据:

SELECT horse_id, name, died * 3
   AS 'human year'
   FROM horse
   ORDER BY horse_id;

以下是此查询中使用的马表及其行:

HORSE TABLE STRUCTURE

+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| horse_id | int(2)      | NO   | PRI | NULL    |       |
| name     | varchar(20) | YES  |     | NULL    |       |
| colour   | varchar(20) | YES  |     | NULL    |       |
| sire     | int(4)      | YES  |     | NULL    |       |
| dam      | int(4)      | YES  |     | NULL    |       |
| born     | int(4)      | YES  |     | NULL    |       |
| died     | int(4)      | YES  |     | NULL    |       |
| gender   | varchar(1)  | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+

我得到的输出如下:

+----------+--------------+------------+
| horse_id | name         | human year |
+----------+--------------+------------+
|      101 | Flash        |          0 |
|      102 | Star         |          0 |
|      201 | Boxer        |          0 |
|      301 | Daisy        |          0 |
|      401 | Snowy        |       5985 |
|      501 | Bluebell     |       5979 |
|      502 | Sally        |       5994 |
|     9998 | Unknown dam  |          0 |
|     9999 | Unknown sire |          0 |
+----------+--------------+------------+

我正在撕掉我的头发,似乎无法获得正确的输出,并认为这里有人会有一些想法。

提前致谢,我希望我提供了大量的信息

Stu:)

1 个答案:

答案 0 :(得分:1)

我将5985分为3并获得1995年。所以你的死亡和#34;场是年。你必须从当前年份减去它,然后再乘以3.也许是这样......

SELECT horse_id, name, (YEAR(CURDATE()) - died) * 3 AS 'human year'
   FROM horse
   WHERE died > 0
   ORDER BY horse_id;