Codeigniter从数据库记录中选择前一天

时间:2019-05-13 17:30:48

标签: php mysql codeigniter

从数据库获取记录的前一天有一些问题。我的桌子看起来像这样:

id   total       trx_date    
1   | 100 | 2019-05-13 04:03:03 |    
2   | 200 | 2019-05-13 14:13:48 |
3   | 300 | 2019-05-12 10:23:37 |
4   | 100 | 2019-05-10 12:14:14 | <<<<<<<<<<<
5   | 200 | 2019-05-10 15:23:38 |
6   | 400 | 2019-05-10 19:33:56 |

如果日期之间没有间隔,我可以获取前一个日期,但是如果前一个日期没有记录,我将无法获取前一个日期。

我的代码:

$this->db->select("id, total, trx_date")
     ->from("trx_table")
     ->where('date(trx_date)', date('Y-m-d', strtotime('-1 day')) )
     ->order_by("id","DESC")
     ->get();

因此,我希望获取记录的前一天,而不是当前日期的前一天。你们可以帮我解决这个问题吗?

谢谢

1 个答案:

答案 0 :(得分:1)

选择早于今天的日期,但将它们降序排列,仅得到一个。这将返回比今天早的最新日期:

SELECT id, total, trx_date
       FROM trx_table 
       WHERE trx_date < NOW()
       ORDER BY trx_date DESC
       LIMIT 1