Mysql将excel表格时间格式yyyy-M-d H:mm:ss格式转为yyyy-MM-dd HH:mm:ss

1.项目中接收客户时间入库varchar类型
当时只发现 excel格式 2022/5/20 13:30:24 只简单将‘/’替换为‘-’,入库后
在这里插入图片描述
造成数据格式不正确查询不到数据 按yyyy-MM-dd HH:mm:ss条件筛选
2.入库时时间格式判断并补‘0’

 if (bjsj.length() < 19) {
                String[] timeArray = bjsj.split(" ");
                String[] localDate = timeArray[0].split("/");
                String[] localTime = timeArray[1].split(":");
                for (int i = 1; i < localDate.length; i++) {
                    localDate[i] = StringUtils.leftPad(localDate[i], 2, "0");
                }
                for (int i = 0; i < localTime.length; i++) {
                    localTime[i] = StringUtils.leftPad(localTime[i], 2, "0");
                }
                String newDate = String.join("-", localDate);
                String newTime = String.join(":", localTime);
                bjsj = newDate + " " + newTime;
            } else {
                bjsj = bjsj.replaceAll("/", "-");
            }

原始代码只做了’/'替换‘-’

 bjsj = bjsj.replaceAll("/", "-");

3.将数据库历史数据时间 修改按‘-’和‘:’截取不足两位补‘0’
3.1 分析 截取 判断长度小于2补‘0’

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,' ',1),'-',1),
CASE WHEN
LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,' ',1),'-',2),'-',-1))<2 then CONCAT('0',SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,' ',1),'-',2),'-',-1))
ELSE SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,' ',1),'-',2),'-',-1) end,

CASE WHEN
LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,' ',1),'-',-1))<2 then CONCAT('0',SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,' ',1),'-',-1))
ELSE SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,' ',1),'-',-1) end,

CASE WHEN
LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,' ',-1),':',1))<2 then CONCAT('0',SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,' ',-1),':',1))
ELSE SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,' ',-1),':',1) end,

CASE WHEN
LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,':',2),':',-1))<2 then CONCAT('0',SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,':',2),':',-1))
ELSE SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,':',2),':',-1) end,

CASE WHEN
LENGTH(SUBSTRING_INDEX(bjsj,':',-1))<2 then CONCAT('0',SUBSTRING_INDEX(bjsj,':',-1))
ELSE SUBSTRING_INDEX(bjsj,':',-1) end
from car_in_out_alert where id =2222

在这里插入图片描述
3.2 拼接时间字符串

UPDATE car_in_out_alert set bjsj = 
CONCAT(
SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,' ',1),'-',1),
'-',
CASE WHEN
LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,' ',1),'-',2),'-',-1))<2 then CONCAT('0',SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,' ',1),'-',2),'-',-1))
ELSE SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,' ',1),'-',2),'-',-1) end,
'-',
CASE WHEN
LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,' ',1),'-',-1))<2 then CONCAT('0',SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,' ',1),'-',-1))
ELSE SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,' ',1),'-',-1) end,
' ',
CASE WHEN
LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,' ',-1),':',1))<2 then CONCAT('0',SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,' ',-1),':',1))
ELSE SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,' ',-1),':',1) end,
':',
CASE WHEN
LENGTH(SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,':',2),':',-1))<2 then CONCAT('0',SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,':',2),':',-1))
ELSE SUBSTRING_INDEX(SUBSTRING_INDEX(bjsj,':',2),':',-1) end,
':',
CASE WHEN
LENGTH(SUBSTRING_INDEX(bjsj,':',-1))<2 then CONCAT('0',SUBSTRING_INDEX(bjsj,':',-1))
ELSE SUBSTRING_INDEX(bjsj,':',-1) end
)
where LENGTH(bjsj)<19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值