我有一个MYSQL表,字段名称为“date”,格式为“dd / mm”;
我需要查询20/06至22/06(3天数据)的结果,这就是我尝试这样做的方法。
mysql> SELECT * FROM `wtt` WHERE date BETWEEN '20/06' AND '22/06';
但是MYSQL也在选择日期22 / 04,22 / 05和其他条目。
是否有MYSQL查询可以获取正确答案,而无需更改我已将信息存储在MYSQL表中的格式?
提前谢谢大家!
答案 0 :(得分:3)
您应该将日期转换为MySQL日期类型,然后进行比较。
您可以像这样转换日期:
SELECT STR_TO_DATE(CONCAT('20/06', '/', EXTRACT(YEAR FROM CURDATE())),'%d/%m/%Y');
或只是
SELECT STR_TO_DATE('20/06','%d/%m');
如果没关系,<00> 0000年。
将日期存储为字符串会给您带来此问题。您应该始终使用DATE类型来存储日期。