我的Sql查询返回空结果集。格式是否有任何错误。我在查询中使用了一些php变量..
public function getBlockDate($month,$year){
$connection = db::factory('mysql');
$time_from="00-00-00";
$time_to="23-59-59";
$sql = 'select * from blocks WHERE date LIKE "'.$year.'-'.$month.'%" AND (time_From="'.$time_from.'" AND time_to="'.$time_to.'")';
return $connection->getArray($sql);
}
* 此处time_from和time_to表列的时间类型为*
答案 0 :(得分:0)
更改您的SQL查询
$sql = 'select * from blocks WHERE date LIKE "'.$year.'-'.$month.'%" AND (time_From="'.$time_from.'" AND time_to="'.$time_to.'")';
'
和$time_from
上缺少 $time_to
个引号
已编辑查询
$time_from="00:00:00";
$time_to="23:59:59";
$sql = 'select * from blocks WHERE date LIKE "'.$year.'-'.$month.'%" BETWEEN (time_From="'.$time_from.'" AND time_to="'.$time_to.'")';
还会更改-
和:
变量中$time_from
的{{1}}
答案 1 :(得分:0)
这对你有用。你没有在AND条款中加上配额。 此外,在查询中使用LIKE时,请确保正确放置通配符。在您的情况下,您正在查找日期列中的记录,其中以年 - 月开头,那么就是您的时间。
$time_from="00-00-00";
$time_to="23-59-59";
$sql = "SELECT * FROM blocks WHERE date LIKE '".$year."-".$month."%' AND (time_From='".$time_from."' AND time_to='".$time_to."')";
答案 2 :(得分:0)
将日期和时间转换为通用格式,然后使用它进行查询。