0

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

   $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

4 回答 4

1

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

于 2012-12-04T11:52:23.220 回答
1

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

echo $data = mysql_query( "select * from cdr
WHERE DATE(calldate) BETWEEN '$start1' AND '$end1';
"); 
于 2012-12-04T11:48:48.283 回答
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'");
于 2012-12-04T11:49:58.223 回答
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."' "
于 2012-12-04T11:58:51.460 回答