我有一个名为 book_data 的表,其中 batch_dt 作为 sql server 中 varchar 类型的列名。
当我通过查询
SELECT DISTINCT batch FROM book_data
它给了我以下结果
batch_dt
-------------
2012-10-31
-------------
2012-11-01
-------------
2012-11-02
-------------
2012-11-03
-------------
.
.
.
现在我正在做的是获取两个日期之间的记录总数。相当简单的查询。
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'
为什么会有这种不同的行为?