0

我对select之间的mysql日期有疑问。在mysql表中,字段为varchar。日期范围是'21-01-2013'和'31-01-2013',它可以显示记录,但是日期范围是'21-01-2013'和'20-02-2013',它不能显示记录。

"SELECT * from away_from_office where (awaydatefrom between '21-01-2013' and '31-01-2013') ";
4

2 回答 2

2

您应该首先使用将其转换为日期STR_TO_DATE,例如。

SELECT * 
from away_from_office 
where awaydatefrom between STR_TO_DATE('21-01-2013', '%d-%m-%Y') and  
                           STR_TO_DATE('31-01-2013', '%d-%m-%Y') 

如果该列与您显示的列具有相同的格式,也将其转换

WHERE STR_TO_DATE(awaydatefrom, '%d-%m-%Y') BETWEEN

如果您有机会更改表格,或者您正在处理示例记录,请通过将列的数据类型更改为DATE.

于 2013-01-03T10:05:50.267 回答
1

将列数据类型更改为DATE

http://dev.mysql.com/doc/refman/5.1/en/datetime.html

于 2013-01-03T10:06:34.287 回答