2016-03-15 51 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