题目描述
有两张表a,b.要将b表中RQ字段迁移到a表中的rq字段.迁移前需要对RQ字段进行日期格式的判断:如果不符合日期格式(如:20130229,2010431,20127192)将它们转换为'20000101'再向a传值.
遇到的问题是,day()这个函数在上述语句中不生效.
相关代码
REPLACE INTO a(rq)
SELECT
IF((DAY(RQ)IS NULL),'20000101',RQ)
FROM b;
你期待的结果是什么?
想知道为什么会不生效.或者有什么方法能简单对日期格式进行校验
可以把要匹配的日期格式放到一张临时表中,例如(tmp)

再用b表与其连接,如果能连接上说明匹配,即可以转换为'20000101',否则用原值。