PHP查询无法选择1周到2周之间的记录

时间:2012-08-02 14:45:19

标签: php mysql

我正在尝试从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");

1 个答案:

答案 0 :(得分:0)

您错误地使用了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_*函数。他们被弃用了。而是使用PDOmysqli。如果您不确定使用哪一个,read this SO article