我正在尝试从一个MySQL表中选择1到2周前的记录,该表有一个日期列。有一个日期是10天前的,但查询忽略了它。你能帮帮忙吗?下面是我使用的查询:
$week2 = mysql_query("SELECT * FROM apps WHERE (user = '"
.mysql_real_escape_string($_POST['username']) . "') and date BETWEEN ( DATE_SUB( NOW(),
INTERVAL 2 WEEK), DATE_SUB( NOW(), INTERVAL 1 WEEK )");如果我使日期不到一周,我可以选择没有问题的记录:
$week1 = mysql_query("SELECT * FROM apps WHERE (user = '" .
mysql_real_escape_string($_POST['username']) . "') and date > NOW() - INTERVAL 1 WEEK
ORDER BY id DESC limit 1");发布于 2012-08-02 22:51:00
您错误地使用了BETWEEN。
试一试
DATE BETWEEN x AND y您还可以传入一个字符串作为日期:
<?php
$startDate = date("Y-m-d", mktime(0, 0, 0, date('m'), date('d') - 14, date('Y')));
$endDate = date("Y-m-d", mktime(0, 0, 0, date('m'), date('d') - 7, date('Y')));
$query = "... AND DATE BETWEEN '" . $startDate . "' AND '" . $endDate . "'";此外,为了响应tadman的评论,您应该停止使用mysql_*函数。它们正被弃用。请改用PDO或mysqli。如果您不确定要使用哪一个,可以使用read this SO article。
https://stackoverflow.com/questions/11779971
复制相似问题