被MySQL计算搞糊涂了
在DB课程的“使用结构化查询语言”模块中,我有一个问题需要回答,其中一个问题让我陷入了困境 问题是: 计算死亡马匹的年龄,并将其乘以3,得到与之相当的人类年龄。列出他们的马的id,名字和“人类年龄”。按马匹号码订购 以下是我一直试图实现这一目标的问题,但我得到的数字在人类时代是非常大的:被MySQL计算搞糊涂了,mysql,Mysql,在DB课程的“使用结构化查询语言”模块中,我有一个问题需要回答,其中一个问题让我陷入了困境 问题是: 计算死亡马匹的年龄,并将其乘以3,得到与之相当的人类年龄。列出他们的马的id,名字和“人类年龄”。按马匹号码订购 以下是我一直试图实现这一目标的问题,但我得到的数字在人类时代是非常大的: SELECT horse_id, name, died * 3 AS 'human year' FROM horse ORDER BY horse_id; 以下是此查询中使用的horse表及
SELECT horse_id, name, died * 3
AS 'human year'
FROM horse
ORDER BY horse_id;
以下是此查询中使用的horse表及其行:
马桌结构
+----------+-------------+------+-----+---------+-------+
| 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 |
+----------+--------------+------------+
我正在把我的头发从这一个,只是不能得到正确的输出,并认为有人在这里会有一些想法
提前谢谢,我希望我已经提供了相当数量的信息
斯图:)我把5985分为3,得到了1995分。所以你的“死亡”领域是一年。你必须从本年度中减去它,然后乘以3。也许是这样的
SELECT horse_id, name, (YEAR(CURDATE()) - died) * 3 AS 'human year'
FROM horse
WHERE died > 0
ORDER BY horse_id;
嗨,塔奈丁,这太完美了。非常感谢你这么做。我想我可能一直在关注这件事。你说的很直截了当。也许是喝杯咖啡的时间了哈哈。再次感谢:D