PDOでdate、datetime型を扱う
PHPでデータベース操作する時に使うPDOでdate型のパラメーターにbindValue()で入れれないという事象が発生して、微妙にハマったので、メモ代わりに書いておきます。
## コード例
$sql = "SELECT ... "
$sql .= "WHERE DATE_FORMAT(start_at, '%Y-%m-%d') = STR_TO_DATE(:date ,'%Y-%m-%d')";
$stmt = $this->db->prepare($sql);
$stmt->bindValue(":date", date("Y-m-d", strtotime($date)), PDO::PARAM_STR);
だめだった例
$sql = "SELECT ... "
$sql .= "WHERE DATE_FORMAT(start_at, '%Y-%m-%d') = :date";
$stmt = $this->db->prepare($sql);
$stmt->bindValue(":date", $date, PDO::PARAM_STR);