0

フォーラムで適切なコードを検索しましたが、解決策はあるもののまだありません。私のデータベースには varchar 12-03-1994 (dmY) があり、私のコードはその年齢範囲のユーザー数を選択します。varchar にある date_of_birth を date_format に変換する必要があり、str_to_date を使用したので、これを実行しましたが、空の結果が得られませんでした。私は何を間違っていますか?

$aged = $conn->prepare("SELECT COUNT(STR_TO_DATE('date_of_birth','%d-%m-%Y')) as year FROM tbl_members WHERE date_of_birth BETWEEN CURDATE() - INTERVAL 105 YEAR AND 
    CURDATE() - INTERVAL 36 YEAR AND resultselect = ?");
$aged->execute(array($pid));
$recordaged = $aged->fetchObject();
$recorda = $recordaged->year;
4

1 に答える 1

0

わかりました、これをテストするためのものは何もありませんが、うまくいくようです...

// needs variables $conn and $pid
$aged = $conn->prepare("SELECT STR_TO_DATE('date_of_birth','%d-%m-%Y') as converted_date FROM tbl_members WHERE converted_date BETWEEN CURDATE() - INTERVAL 105 YEAR AND CURDATE() - INTERVAL 36 YEAR AND resultselect = ?");
$result = $aged->execute(array($pid));
$count = mysql_num_rows($result);
于 2013-11-15T17:44:29.563 に答える