mysql计算年龄

最近太忙没时间写博客,今天写个简单的,项目中有个需求就是查询年龄,已知出生日期,在sql中解决,上代码

表中的信息:

| name     | species | birth      |
+----------+---------+------------+
| Chirpy   | bird    | 1998-09-11 |
| Whistler   | bird    | 1997-12-09 |
| Claws   | cat     | 1994-03-17 |
| Fluffy   | cat    | 1993-02-04 |
| Fang    | dog    | 1990-08-27 |
| Bowser   | dog    | 1989-08-31 |
| Buffy   | dog    | 1989-05-13 |
| Puffball   | hamster    | 1999-03-30 |
| Slim    | snake    | 1996-04-29 |
+----------+---------+------------+

YEAR()提取日期的年部分,RIGHT()提取日期的MM-DD (日历年)部分的最右面5个字符。比较MM-DD值的表达式部分的值一般为1或0,如果CURDATE()的年比birth的年早,则年份应减去1。

sql:

    SELECT name, birth, CURDATE(),
    (YEAR(CURDATE())-YEAR(birth))
    -(RIGHT(CURDATE(),5)<RIGHT(birth,5))
    AS age
    FROM pet
结果如下:

+----------+------------+------------+------+
| name     | birth      | CURDATE()  | age  |
+----------+------------+------------+------+
| Fluffy    | 1993-02-04 | 2003-08-19 |   10 |
| Claws    | 1994-03-17 | 2003-08-19 |   9 |
| Buffy    | 1989-05-13 | 2003-08-19 |   14 |
| Fang    | 1990-08-27 | 2003-08-19 |   12 |
| Bowser    | 1989-08-31 | 2003-08-19 |   13 |
| Chirpy    | 1998-09-11 | 2003-08-19 |   4 |
| Whistler    | 1997-12-09 | 2003-08-19 |   5 |
| Slim    | 1996-04-29 | 2003-08-19 |   7 |
| Puffball    | 1999-03-30 | 2003-08-19 |   4 |
+----------+------------+------------+------+
希望能帮到需要的战友。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值