【问题标题】:Mysql query show people older than certain ageMysql查询显示年龄超过一定年龄的人
【发布时间】:2015-05-22 19:03:11
【问题描述】:

我正在尝试创建一个查询以仅显示 50 岁以上的人,但我遇到了困难,因为我只有 DOB 而不是年龄字段。

有什么建议吗?谢谢

【问题讨论】:

    标签: mysql


    【解决方案1】:

    假设您将 DOB 保存为 datedatetime 数据类型,您可以使用 timestampdiff as

    select * from table_name
    where  timestampdiff(year,dob,curdate()) > 50
    

    这是一个测试用例

    mysql> select timestampdiff(year,'1960-01-20',curdate()) as age ;
    +------+
    | age  |
    +------+
    |   55 |
    +------+
    1 row in set (0.00 sec)
    
    mysql> select timestampdiff(year,'1950-01-20',curdate()) as age ;
    +------+
    | age  |
    +------+
    |   65 |
    +------+
    1 row in set (0.00 sec)
    

    【讨论】:

      【解决方案2】:

      假设dob 列数据类型为DateTime

      SELECT *
      FROM tblname
      where YEAR(CURDATE()) - YEAR(dob) > 55
      

      DEMO SQL FIDDLE

      【讨论】:

        猜你喜欢
        • 2022-01-19
        • 2011-02-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多