数据库中的日期是 2022-1-3,2022-12-6,2022-1-13.这种不全的日期格式。想改成2022-01-01。
长度是8的把,月和日取出来都加'0'就行。长度是9可能是月是一位数,也可能是日是一位数。
在网上查也没有写好的例子,就自己写了一个sql。分享一下。把所有 b 换成要格式的字段就行。
UPDATE test SET b = CONCAT_WS('-',LEFT(b,4),
IF(CHAR_LENGTH(SUBSTR(right(b,4),1,(INSTR(right(b,4),'-')-1)))<2,CONCAT('0',SUBSTR(right(b,4),1,(INSTR(right(b,4),'-')-1))),SUBSTR(right(b,4),1,(INSTR(right(b,4),'-')-1))),
IF((CHAR_LENGTH(SUBSTR(right(b,4),(INSTR(right(b,4),'-')+1),(4-INSTR(right(b,4),'-')))))<2,CONCAT('0',(SUBSTR(right(b,4),(INSTR(right(b,4),'-')+1),(4-INSTR(right(b,4),'-'))))),SUBSTR(right(b,4),(INSTR(right(b,4),'-')+1),(4-INSTR(right(b,4),'-'))))
)单条sql看起来比较乱。也可以设置变量简化。
版权声明:本文为m0_61396929原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。