日付には絶対に使用BETWEEN
しないでください (特に日時には使用しないでください)。以下を使用できます。
WHERE date_created >= '2012-07-30'
AND date_created < '2012-07-31'
---or: < '2012-07-30' + INTERVAL 1 DAY
-------------------^-------------- notice the lack of the equal sign here
DATE
、DATETIME
およびTIMESTAMP
データ型と同様に機能します。
の提案されたソリューションでは、まだ一部の行が欠落している可能性があることに注意してくださいBETWEEN '2012-07-30' AND '2012-07-30 23:59:59'
。
詳細な説明については、次の素晴らしいブログ投稿をお読みください。
BETWEEN と悪魔の共通点は何ですか?
ブログでは SQL-Server の問題について説明していますが、ほとんどの部分はBETWEEN
MySQL にも適用されます (ただし、まだ存在しないミリ秒のサポートを除きます。@Ignacio が修正してくれたことに感謝します)。