cakephpでdate型を比較するmysql文の発行
記念すべき第一篇のエントリなんですが、なぜかCakephpのネタにしっちゃいます。
※この書き方は1.1で検証済みだが、1.2も同じだと信じています(期間の箇所だけね)
= '$start_date'"; $conditions["and"][] = "DATE( `created` ) <= '$end_date'"; #公開・下書き switch ($coped){ #公開 case "coped_on": $conditions["coped"] = 1; break; #非公開 case "coped_off": $conditions["coped"] = 0; break; case "coped_all": default: break; } $return["totalNum"] = $this->findCount($conditions); if($pageSize and $pageNo){ $return["item"] = $this->findAll($conditions,null,"id DESC",$pageSize,$pageNo); }else{ $return["item"] = $this->findAll($conditions,null,"id DESC"); } return $return; } } ?>
期間のところは下記のように書いちゃうとエラーにならないけど、検索結果は絶対に間違いますよ!
#期間
$conditions["and"]["created"] = ">= '$start_date'";
$conditions["and"]["created"] = "<= '$end_date'";
なぜかというと、date型はちゃんとDATE()で囲まないと文字列または数字の比較になっちゃいますからね。