前にMYSQLでDATE型とかDATETIME型と年で比較 - purazumakoiの[はてな]で、その年のデータを抽出するのは作ったが、今回は年月日で検索する。


【テスト環境】mysqlの4.0x系
フィールドの型はDATE型
f:id:purazumakoi:20090213111904j:image

結論としてこんなSQLになればいい*1

/* 2009-01-01 〜 2009-03-03 のデータを抽出 */
SELECT id FROM table_name WHERE DATE_FORMAT(f_date, %Y-%m-%d)>=2009-01-01 AND DATE_FORMAT(f_date, %Y-%m-%d)<=2009-03-03

phpでやる場合
月、日はsprintfでゼロパディングすればよい

<?php
$month = sprintf("%02d", $month);
$day = sprintf("%02d", $day);
?>

*1:実行して試してはいない