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的记录,要把这些都查出来。

阅读 32.5k
5 个回答

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

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

order by UNIX_TIMESTAMP() - `CREATEDATE` asc

完整的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;

对你要查询的字段 asc

select
    * 
from
    user
where
    exists(
        select 1 from (select max(CREATEDATE) as CREATEDATE from user) a
        where a.CREATEDATE=user.CREATEDATE
    )
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏