你好stackian飞越者,
我试图覆盖现有列中的数据,并在已设置的情况下执行str\u to\u date。
代码如下:
SELECT IF(columnA = '../../..' , '0000/00/00' , STR_TO_DATE(columnA, '%m/%d/%Y)
FROM tablename
WHERE extract_date = '2018-12-31';
实际上,我必须使用这个逻辑来更新表。我试过这个:
UPDATE tablename
IF columnA = '../../..' THEN
SET columnA = '0000-00-00' ELSE
SET columnA = STR_TO_DATE(columnA,'%m/%d/%Y);
在这件事上需要任何帮助。
1条答案
按热度按时间jfewjypa1#
mysql的
REGEXP
接线员在这里很方便:更新是没有意义的
columnA
从字符串到日期,因为类型不匹配。更好的策略是创建一个新列来存储日期。另外,我建议使用NULL
,不是0000-00-00
,表示无法分析的日期字符串。请注意,我使用的正则表达式不是万无一失的,并且不能完全验证日期字符串。但它至少应该剔除真正关闭的字符串数据。