我的表中有以下日期。我如何找到今天的最接近日期(如果今天的日期存在),或者如果今天的日期不在,那么最近的日期?
2012-10-01 aa123
2012-10-02 aa43
2012-10-03 aa478
2012-10-04 aa40
2012-10-05 aa54
2012-10-06 de34
2012-10-07 a5434
2012-10-08 r4t
2012-10-09 x34
2012-10-10 q23
2012-10-11 b53
因此,如果今天是'2012-10-07'
,则记录将为a5434
。但是,如果缺少2012-10-07
,则记录将是de34
,它属于2012-10-06
,因为那将是从今天起的最接近的。
我不确定从哪里开始,所以我还没有尝试过任何事情。需要SQL解决方案。
这很简单,只需获得最后一个日期< =当前日期:
$now = date("Y-m-d");
$sql = "SELECT * FROM date_table where date_field <= '$now' ORDER BY date_field DESC LIMIT 1 OFFSET 1";
向查询添加ORDER BY
语句。以下将按日期订购行,最新的排在顶部,底部最古老。
SELECT `id`, `date` FROM `table` ORDER BY `date` DESC LIMIT 1;