【发布时间】:2015-09-24 11:40:51
【问题描述】:
我正在使用此查询来选择日期之间的数据:
SELECT id, date FROM table WHERE date BETWEEN '09/10/2015' and '09/23/2015';
我得到了这些结果:
1 09/11/2015
2 09/13/2015
3 09/16/2015
4 09/21/2015
5 09/21/2015
6 09/21/2015
7 09/22/2015
8 09/23/2015
但是当我将日期更改为一年前,而不是再次显示所有这些数据时,它会返回一个忽略年份的结果:
SELECT id, date FROM table WHERE date BETWEEN '09/15/2014' and '09/23/2015';
结果:
3 09/16/2015
4 09/21/2015
5 09/21/2015
6 09/21/2015
7 09/22/2015
8 09/23/2015
我错过了什么?
编辑:
日期列数据类型:varchar。
【问题讨论】:
-
列数据类型?您是在比较日期还是字符串?
-
date列数据类型为 varchar -
由于该列是 varchar 您不是在比较日期,而是在比较字符串。如果可能,将列更改为日期类型。或者在比较值之前转换为日期。
-
但是为什么它可以工作几天和几个月?
-
纯属运气...按字母顺序排列。