显示MySQLi的结果从3个月前到今天

时间:2015-12-14 22:52:30

标签: php mysql datetime mysqli

我一直在寻找有关搜索的问题的帮助,并尝试根据这些问题编辑我的代码,但没有运气,所以我希望有人可以在这里提供帮助。

我有一个数据库,其中有一堆日期时间戳Y-m-d H:i:s的交易。

我试图从3个月前提取结果,直到今天,虽然我的代码似乎没有正常运行?无论我在数据库中更改了多少日期,都没有任何反应?

我已尝试>并尝试更改ANDOR语句,并且已经摆弄了我标记变量的方式,例如:`'$ variable'{ $ variable}``$ variable```再次没有运气......

$today = date('Y-m-d H:i:s');
$months3 = strtotime('-3 months', strtotime($today));
$months_ago = date('Y-m-d H:i:s' , $months3 );

$user_email = $_SESSION['email_address'];

$sql3 = "SELECT * FROM `ap_payment_logs` WHERE 'txn_date' BETWEEN '{$months_ago}' AND '{$today}' AND user_id = '$user_id' OR payer_email = '$user_email' ORDER BY 'txn_date' DESC LIMIT 10";

1 个答案:

答案 0 :(得分:0)

我不确定这方面的性能方面,但你可以在mysql中做这样的事情:

WHERE txn_date >  NOW() - INTERVAL 3 MONTH

如果你的表也有将来的记录,你应该添加'txn_date'应该小于NOW()的条件

然后将您的SQL查询更改为:

$sql3 = "SELECT * FROM `ap_payment_logs` WHERE 'txn_date' > NOW() - INTERVAL 3 MONTH AND (user_id = '$user_id' OR payer_email = '$user_email') ORDER BY 'txn_date' DESC LIMIT 10";

希望有所帮助