1

空の結果セットを返す私の 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 テーブルの列は時間型です*

4

3 に答える 3

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.'")';

および変数の-withも変更し:ます$time_from$time_to

于 2013-07-29T09:55:03.763 に答える
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."')";
于 2013-07-29T10:05:10.573 に答える
0

日付と時刻をユニバーサル形式に変換し、それを使用してクエリを実行します。

于 2013-07-29T10:41:10.000 に答える