【问题标题】:PHP: calculating birthday from agePHP:根据年龄计算生日
【发布时间】:2010-10-02 10:03:46
【问题描述】:

是的,这听起来很奇怪。

在高级个人资料搜索表单中,您可以按年龄过滤。

现在您可以在字段中输入 18 岁或其他年龄。

我将生日存储在 mysql 数据库中,在用户的生日字段中,例如:1990-02-02

那么我如何在查询中按年龄过滤?

我应该先进行查询,将所有用户的生日设为年龄,然后进行比较吗?太多了,每个用户都带走。

【问题讨论】:

    标签: php mysql comparison date


    【解决方案1】:

    我敢打赌,这就是您要搜索的内容:

    SELECT * FROM mytable 
    WHERE TIMESTAMPDIFF(YEAR, mytable.birthday,'$currentTime') > '$ageFromForm';
    

    要对数据进行排序,您将执行以下操作:

    SELECT *, (TIMESTAMPDIFF(YEAR, mytable.birthday, '$currentTime')) AS age 
    FROM mytable WHERE TIMESTAMPDIFF(YEAR,'$birthday','$currentTime') > '$ageFromForm' 
    ORDER BY age;
    

    我希望这会有所帮助;) 斯拉夫语

    【讨论】:

      【解决方案2】:

      未经测试,但应作为开始的基础:

      SELECT <columns> FROM users WHERE birthday < SUBDATE(NOW(), INTERVAL 18 YEAR)
      

      【讨论】:

        猜你喜欢
        • 2013-10-31
        • 1970-01-01
        • 1970-01-01
        • 2023-03-14
        • 2014-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-12
        相关资源
        最近更新 更多