从数据库获取最近几天记录

各位大牛好!小弟碰到一个问题,困扰了许久,还是没好的解决方案,请大家指点下下。
我想从数据库“消息表”中获取最近几天记录。比如最近4天的记录,我能想到方案如下:
方案一:
以当天日期为基准,示意sql:select * from message where send_date in(当天,当天-1,当天-2,当天-3);
方案二
以消息表中最新日期,即Max(send_date)为基准,类似上面的查询。
问题是,send_date并不是连续的,日期之间相差可能为1、2、3等,而且同一天可存在多条记录。
所以简单的以某个日期为基准,加减来推算,肯定是不合理的。
注意表中日期的格式为:YYYY-MM-dd HH:mm:ss,而实际查询的时候,是根据某一天,即格式为YYYY-MM-dd。
我的问题是,如何从表中先查询出最近几天的日期,然后再以此为条件,查询想要的记录。
麻烦大家点拨下下,谢谢!

里层查询的select send_date 改成distinct send_date

select * from message where send_date in(
select send_date from message order by send_date desc limit 4)