2016-03-15 70 views
0

你好,我试图删除所有数据,范围从04/15/201403/16/2016。我的问题是日期的数据类型是varchar。格式是m/d/Y。我目前的sql代码在这里MySQL从远程日期中删除

DELETE FROM ending_inventory WHERE STR_TO_DATE(dater, '%m/%d/%Y') BETWEEN '04/15/2014' AND '03/16/2016' 

它没有做任何事情。

有没有办法做到这一点,而不会将数据类型更改为DATE?因为我已经有很多数据了。

+0

尝试使用DELETE FROM ending_inventory WHERE STR_TO_DATE(达特, '%Y /%M /%d') '之间的2014年4月15日' 和“2016/03/16' –

回答

1

你可以试试这个。 STR_TO_DATE功能改变字符为日期和它的默认格式是“YYYY-MM-DD”

DELETE FROM ending_inventory 
WHERE STR_TO_DATE(dater, '%m/%d/%Y') 
BETWEEN '2014-04-15' AND '2016-03-16'; 

DATE FUNCTIONS 希望这会为你工作。

+0

dater字段中的日期被格式化为m/d/Y,并且我尝试了您的代码,但它不起作用。 – FewFlyBy

+0

你可以使用str_to_date与'2014-04-15'和'2016-03-16'两个日期 –

+0

我不明白你想说这两个日期? – FewFlyBy

1

试试这个来分析你的约会:

select date_format(str_to_date('12/31/2011', '%m/%d/%Y'), '%Y%m'); 
+0

我没有得到你的答案 – FewFlyBy