SQL Server の varchar 型の列名として batch_dt を持つ book_data という名前のテーブルがあります。
クエリを渡すとき
SELECT DISTINCT batch FROM book_data
次の結果が得られます
batch_dt
-------------
2012-10-31
-------------
2012-11-01
-------------
2012-11-02
-------------
2012-11-03
-------------
.
.
.
今私がやっていることは、2 つの日付間のレコードの総数を取得することです。かなり単純なクエリ。
SELECT COUNT(*) FROM book_data WHERE CONVERT(varchar(12),CONVERT(datetime,batch_dt),101) BETWEEN '11/02/2012' and '10/31/2012'
結果は 112
月を02から2に変更するだけで、クエリは218の結果を返します
SELECT COUNT(*) FROM book_data WHERE CONVERT(varchar(12),CONVERT(datetime,batch_dt),101) BETWEEN '11/2/2012' and '10/31/2012'
なぜこの異なる動作ですか?