我正在尝试从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");
答案 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_*
函数。他们被弃用了。而是使用PDO或mysqli。如果您不确定使用哪一个,read this SO article。