数据库中不完整日期格式化,sql

数据库中的日期是 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版权协议,转载请附上原文出处链接和本声明。