我对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') ";
您应该首先使用将其转换为日期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
.
将列数据类型更改为DATE