gpt4 book ai didi

MySQL - IF 查询 STR_TO_DATE

转载 作者:行者123 更新时间:2023-11-29 16:28:33 25 4
gpt4 key购买 nike

问候 Stackian Overflowers,

我正在尝试覆盖现有列中的数据,并在已设置的情况下执行 STR_TO_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);

在此事上需要任何帮助。

最佳答案

MySQL 的 REGEXP 运算符在这里派上用场:

UPDATE tablename
SET date_col = CASE WHEN columnA REGEXP '[0-9]{2}/[0-9]{2}/[0-9]{4}'
THEN STR_TO_DATE(columnA, '%m/%d/%Y)
ELSE NULL END;

columnA 从字符串更新为日期是没有意义的,因为类型不匹配。更好的策略是创建一个新列来存储日期。另外,我建议使用 NULL,而不是 0000-00-00 来表示无法解析的日期字符串。

请注意,我使用的正则表达式并不是万无一失的,并且不能完全验证您的日期字符串。但它至少应该清除掉真正关闭的字符串数据。

关于MySQL - IF 查询 STR_TO_DATE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54095910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com