我正在运行查询以查找两个日期之间的日期,但查询未按预期工作。
我的数据库中的日期保存在VARCHAR
字段中,其值为22-january-2015
。
如何将01-january-2015
更改为01-01-2015
?
SELECT DATE_FORMAT(date1, '%d-%M-%Y'), DATE_FORMAT(date2, '%d-%M-%Y'),
FROM table WHERE '22-11-2015' BETWEEN date1 AND date2
答案 0 :(得分:2)
%M:月份名称(1月至12月)
%m:月,数字(00-12)
请使用%m
代替%M
。
SELECT DATE_FORMAT(date1, '%d-%m-%Y'), DATE_FORMAT(date2, '%d-%m-%Y'),
FROM table Where '22-11-2015' BETWEEN date1 AND date2
OR
SELECT DATE_FORMAT(STR_TO_DATE(date1, '%d-%m-%Y'),'%d-%m-%Y'),
DATE_FORMAT(STR_TO_DATE(date2, '%d-%m-%Y'),'%d-%m-%Y'),
FROM table Where '22-11-2015' BETWEEN STR_TO_DATE(date1, '%d-%m-%Y') AND STR_TO_DATE(date2, '%d-%m-%Y')
希望这有帮助。