使用perl获得年龄

时间:2014-04-04 15:47:39

标签: mysql sql perl

我有一个名为订阅者的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;

1 个答案:

答案 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()),以便将来查询继续以相同的方式工作。