在MySQL中的WHERE条件中的转换日期

时间:2015-11-12 17:30:52

标签: mysql date

我正在运行查询以查找两个日期之间的日期,但查询未按预期工作。

我的数据库中的日期保存在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

1 个答案:

答案 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')

希望这有帮助。