首页 > MySQL获取距离当前日期最近的记录

MySQL获取距离当前日期最近的记录

比如有一张表,结构如下:
表名叫USER:
UUID USERNAME PASSWORD CREATEDATE

现在需要获取CREATEDATE距离现在最近的那些数据。
比如表里的CREATEDATE值有2014-10-11、2013-02-10、2015-09-18、2016-03-04
现在需要把距离现在最新日期的那些日期(例子中是2016-03-04)查出来。
可能我的例子举得不好,说白了,就是查找最新的记录,就拿上面的例子来说,其实会有很多2016-03-04的记录,要把这些都查出来。


用子查询吧,
select * from user where date = (select date from user order by date desc limit 1)


对你要查询的字段 asc


没理解错的话是 order by 现在的时间戳 - 数据库里存储的时间戳 asc?

order by UNIX_TIMESTAMP() - `CREATEDATE` asc

select
    * 
from
    user
where
    exists(
        select 1 from (select max(CREATEDATE) as CREATEDATE from user) a
        where a.CREATEDATE=user.CREATEDATE
    )

完整的sql应该是这样的,对于CREATEDATE 进行降序排序

select * from USER order by CREATEDATE ASC

如果之要查询最近的那个日期的所有记录,sql语句如下:

select * from user inner join (select max(CREATEDATE) as C from user) A on user.CREATEDATE=A.C;
【热门文章】
【热门文章】