purazumakoiの[はてなブログ]

技術メモから最近はライフログも増えてきてます。

指定期間内のデータを抽出

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


【テスト環境】mysqlの4.0x系
フィールドの型はDATE型

結論としてこんな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:実行して試してはいない