RECORDS
MySQL テーブルは次のとおりです。
ID - BIGINT(20)
DATE - DATE
記録:
ID Date
1 2014-03-01
2 2014-03-02
3 2014-04-01
4 2014-04-02
最初のクエリは次のとおりです。
SELECT id, DATE_FORMAT(date,'%d/%m/%Y') AS date FROM records
WHERE
date >= STR_TO_DATE('01/04/2014','%d/%m/%Y') AND
date <= STR_TO_DATE('30/04/2014','%d/%m/%Y')
すべて問題ありません。結果は次のとおりです。
3,2014-04-01
4,2014-04-02
しかし、次のようなサブクエリで日付範囲を取得しようとすると:
SELECT *
FROM (SELECT id, DATE_FORMAT(date,'%d/%m/%Y') AS date
FROM records) AS TEST
WHERE
date >= STR_TO_DATE('01/04/2014','%d/%m/%Y') AND
date <= STR_TO_DATE('30/04/2014','%d/%m/%Y')
空の結果セット (つまり、ゼロ行) が得られます。
私の間違いはどこですか?