我有一个名为订阅者的mysql表,如下所示:
cell |name |year|id|email
10000000|Arabang,GP|F|1981|2|10000000@cs.ub.bw
10000001|Basupang,B.|F|1981|42|10000001@cs.ub.bw
10000002|Bontshitswe,C.|F|1980|36|10000002@cs.ub.bw
10000003|Botsalano,T.|M|1980|42|10000003@cs.ub.bw
10000004|Botshelo,M.|F|1982|14|10000004@cs.ub.bw
10000005|Botshelo,OD|M|1981|10|10000005@cs.ub.bw
10000006|Chabota,M|M|1980|3|10000006@cs.ub.bw
我如何仅使用年份来计算年龄。我已经研究过on this website 但我仍然无法理解如何做到这一点。 * 年份的数据类型为年*
这是我的查询:
my $sth0 =$dbh-> prepare("select *,( 2014 - year)
as year from subscribers
");
$sth0->execute() or die $DBI::errstr;
答案 0 :(得分:0)
我不明白你的问题是什么。为什么你认为这不起作用?如果你忽略这样一个事实:你这样的年龄可能是一年太高(取决于人的生日时间),那么你的查询就可以了。
[test]> create table person (name varchar(20), birth year);
Query OK, 0 rows affected (0.04 sec)
[test]> insert into person values ('Dave', 1962);
Query OK, 1 row affected (0.02 sec)
[test]> select name, year(now()) - birth as age from person;
+------+------+
| name | age |
+------+------+
| Dave | 52 |
+------+------+
1 row in set (0.00 sec)
(那一年太高了,因为我的生日是九月,现在只有四月。)
注意:我更改了您的硬编码' 2014'到year(now())
,以便将来查询继续以相同的方式工作。