我的桌子上有以下日期。如何找到今天最近的日期(如果今天的日期在那里)或者今天的日期是否在那里,那么最近的过去日期是什么?
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解决方案。
答案 0 :(得分:11)
这很简单,只需获取最后一个日期< =当前日期:
$now = date("Y-m-d");
$sql = "SELECT * FROM date_table where date_field <= '$now' ORDER BY date_field DESC LIMIT 1 OFFSET 1";
答案 1 :(得分:2)
向查询添加ORDER BY
语句。以下将按日期对行进行排序,最新的位于顶部,最旧的位于底部。
SELECT `id`, `date` FROM `table` ORDER BY `date` DESC LIMIT 1;