php - 从今天开始的 MySQL 日期查找器

标签 php mysql

我有一个用户表,其中有一个生日日期字段:

buddy_auto_id    int(11) PK

user_id          varchar(128)

buddy_user_id    varchar(128)

buddy_name       varchar(128)

buddy_bday       date

buddyuser_id     varchar(20)

active           enum('Yes','No')

requestsentby    int(11)

whenrequested    timestamp

我试图找到与今天日期相比生日最快的 3 个用户,然后显示他们生日前的天数,从早到晚排序。

这在 SQL 查询中是否可行,还是我必须将其取出并让 PHP 执行等式?

非常感谢

最佳答案

我们首先需要计算下一个生日,然后按该值排序:

select *,
    buddy_bday + interval 
        if(
              month(buddy_bday) < month(now()) or 
              (month(buddy_bday) = month(now()) and day(buddy_bday) < day(now())),

              year(now())+1,
              year(now())
        ) - year(buddy_bday) year as next_bday
from buddies order by next_bday - date(now());

长 if 语句判断好友今年是否已经过生日。

关于php - 从今天开始的 MySQL 日期查找器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8307994/

相关文章:

javascript - CORS保护 : What is the point of HTTP_ORIGIN

php - PDO 和清理日期/删除 HTML

javascript - 以 HTML 形式复制到其他动态表的数据

php - 检查数据库中是否存在电子邮件

php - mysql_real_escape_string 在数据库连接内返回空/空白

php - 在服务器上上传3张图片,并将路径保存在数据库中

PHPUnit 找不到我的 PHP 文件,命名空间问题?

mysql - 使用 MYSQL InnoDB 进行地理位置搜索

php - MySQL 更新需要很长时间

php - 在MySQL中,如何从两个不同的表中选择*?