检索以dd/mm/yyy格式(varchar)存储的两个日期之间的值

zzz*_*zzz -3 php mysql sql date

我有一个这样的表:

   +-----+------------+
   | no  | Date       |
   +-----+------------+
   | 1   | 10/11/2011 |
   | 2   | 10/12/2011 |
   | 3   | 10/13/2011 |
   | 4   | 10/14/2011 |
   | 5   | 10/15/2011 |
   +-----+------------+
Run Code Online (Sandbox Code Playgroud)

我编写了以下查询,但它没有返回任何内容,因为date它存储在varchar列中,格式为dd/mm/yyyy.

SELECT * 
FROM   tablname 
WHERE  date BETWEEN '10/11/2011' AND '10/15/2011'
Run Code Online (Sandbox Code Playgroud)

如果我的日期以dd/mm/yyy格式存储,如何找到两个日期之间的值?

拜托,任何人都可以帮帮我吗?

提前致谢

Cyl*_*ric 6

如果你真的必须将数据保存为varchar,那么你不必先将它拉入PHP.您可以使用MySQL的日期时间功能

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date

SELECT STR_TO_DATE(YourDateColumn,'%d/%m/%Y') AS RealDateColumn 
FROM YourTable
Run Code Online (Sandbox Code Playgroud)

也许

SELECT *
FROM YourTable
WHERE STR_TO_DATE(YourDateColumn,'%d/%m/%Y')  < '2011-01-01'
Run Code Online (Sandbox Code Playgroud)