我正在尝试检索一组将在接下来的 7 天内过期的 ID,但我这辈子都无法让我的查询正常工作
$target_date = date('Y-m-d', strtotime('+7 days'));
$sql = "SELECT subscriptions.`id` FROM subscriptions WHERE date($target_date) <= expires AND cust_id =$_SESSION[uid]";
任何帮助将不胜感激
最佳答案
这很好:
$target_date = date('Y-m-d', strtotime('+7 days'));
因为它以与 MySQL 相同的方式构造日期 [YYYY-MM-DD]
我已经改变了您的查询并将 DATE()
函数应用于“expires”字段,而不是您的 $target_date
,因为它不需要。您的过期字段可能采用 [YYYY-MM-DD HH:MM:SS]
格式,这可能是它不起作用的原因:
$sql = "
SELECT subscriptions.id
FROM subscriptions
WHERE DATE(expires) >= '$target_date'
AND cust_id = '$_SESSION[uid]'";
回显 $sql
查询以查明它是否正确执行并使用 or die(mysql_error());
告诉您它在哪里失败。
如另一个答案中所述,也使用 SQL 转义(PDO 或 mysqli)。
希望这对您有所帮助。
关于php - mysql查询查找日期小于另一个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13075130/