您好我正在尝试删除从 04/15/2014 到 03/16/2016 的所有数据。我的问题是日期的数据类型是DELETE FROM ending_inventory WHERE STR_TO_DATE(dater, '%m/%d/%Y') BETWEEN '04/15/2014' AND '03/16/2016'
。格式为m / d / Y.我当前的sql代码在这里
DATE
它没有做任何事情。
有没有办法在不将数据类型更改为{{1}}的情况下执行此操作?因为我已经拥有大量数据..
答案 0 :(得分:1)
您正在将日期与字符串进行比较。您需要从您尝试比较的两个字符串生成日期。请参阅Jon Skeets在此处的回答:mysql date comparison with date_format
答案 1 :(得分:1)
你可以试试这个。 STR_TO_DATE FUNCTION将字符更改为日期,其默认格式为“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 希望这对你有用。
答案 2 :(得分:1)
尝试此操作来解析您的日期:
select date_format(str_to_date('12/31/2011', '%m/%d/%Y'), '%Y%m');