查询无法进行数据查找

时间:2012-12-04 11:42:52

标签: php mysql

我有这个查询! 为什么不起作用?

   $start=$_REQUEST['to'];
$end=$_REQUEST['from'];
echo $start1 = strftime('%Y-%m-%d', strtotime($start));
echo $end1 = strftime('%Y-%m-%d', strtotime($end));

echo $data = mysql_query( "select * from cdr
WHERE DATE(calldate) BETWEEN '$start1' AND '$end1';
")

我的意思是$ date_get的输出是:20121203,它应该可以工作。如果我设置它可以工作:

echo $data = mysql_query( "select * from cdr
WHERE DATE(calldate) BETWEEN'20121201' AND '20121203';
") 

4 个答案:

答案 0 :(得分:1)

strftime Returns a string formatted according format using the given timestamp。所以在第一个查询中加上引号并得到像这样的结果

echo $data = mysql_query( "select * from cdr
WHERE DATE(calldate) BETWEEN '$start1' AND '$end1';
"); 

答案 1 :(得分:1)

你必须替换它:

$data = mysql_query( "select * from cdr 
        WHERE DATE(calldate) BETWEEN $start1 AND $end1;");

用这个

$data = mysql_query( "select * from cdr 
        WHERE DATE(calldate) BETWEEN '$start1' AND '$end1'");

没有回声的最终代码:

$start=strftime('%Y-%m-%d', strtotime($_REQUEST['to']));
$end=strftime('%Y-%m-%d', strtotime($_REQUEST['from']));

$data = mysql_query( "select * from cdr
    WHERE DATE(calldate) BETWEEN '$start' AND '$end'");

答案 2 :(得分:1)

使用
BETWEEN '$start1' AND '$end1'
或者你可以使用
where DATE(calldate) >= "$start1" and DATE(calldate) =< "$end1"

答案 3 :(得分:0)

试试这个

   $start1 = date('Y-m-d', strtotime($start));
   $end1   = date('Y-m-d', strtotime($end));

 "SELECT * from `cdr` 
  WHERE DATE_FORMAT(cont_msg_received_dt,'%Y-%m-%d') BETWEEN '".$start1."' AND '".$end1."' "