i有一个表,其中有一个名为" date"的列,其中包含格式中的日期为" 23-nov-2017"作为datatype varchar。我正在尝试转换此VARCHAR列,并将其存储在一个名为" newdate" datatype日期的新列中。
我创建了类型日期的新列" newdate",我正在尝试使用str_to_date((函数执行转换。但是,由于某种原因,我无法使其工作。
UPDATE table SET NEWDATE = STR_TO_DATE(DATE,'%d-%m-%Y');
语句之后,新的列未使用任何值更新。我想这意味着该语句不会执行。我在做什么错?
编辑:我还尝试了str_to_date(日期,'%d-%b-%y'(。但是,在newdate列
您的格式'%d-%m-%y'与您的实际日期字符串" 23-nov-2017"
%m
是数字月份,您有一个缩写的文本月将%b
用于3个月的CHAN值:
STR_TO_DATE(DATE,'%d-%b-%Y')
编辑:Workbench问题
这只是一个工作台配置设置,可以阻止您不小心发出大量更新。您可以通过给它一个子句,将其像下面的子句运行一样,将其关闭。下面假设该表具有id
列
UPDATE table SET NEWDATE = STR_TO_DATE(DATE,'%d-%b-%Y') WHERE id<10000000;
或
UPDATE table SET NEWDATE = STR_TO_DATE(DATE,'%d-%b-%Y') WHERE id>0;