
来自粉丝的提问:单元格内容是2023年03月10日 15时23分12秒怎么变成2023-03-10 15:23:12?
因为有很多内容是年月日时分秒的单元格,我想找到一个快捷方式,快速转换,好批量导入数据库,数据库识别不了中文年月日时分秒的字只能转化成-和:的样式。

想要实现日期格式转换,我们通过以下几种方法将单元格中的内容从“2023年03月10日 15时23分12秒”格式转换为“2023-03-10 15:23:12”格式,以便批量导入数据库。
方法一:使用TEXT和SUBSTITUTE函数
若是日期和时间格式比较统一时,可以使用下面的这个公式来转换格式:
=SUBSTITUTE(SUBSTITUTE(LEFT(A1, FIND(" ",A1)-2), "年", "-"), "月", "-")&" "&TEXT(MID(A1, FIND(" ",A1)+1, 10),"hh:mm:ss")
公式释义:
1、FIND(" ",A1):通过FIND函数找到空格在A1中位置。
2、LEFT(A1, FIND(" ",A1)-2):通过LEFT函数提取空格左侧的“日”字除外的文本。
3、SUBSTITUTE(SUBSTITUTE(LEFT(...), "年", "-"), "月", "-"):通过SUBSTITUTE将“年”和“月”替换为“-”,返回2023-03-10。
4、MID(A1, FIND(" ",A1)+1, 10):通过MID函数提取空格右侧的文本。
5、TEXT(MID(...),"hh:mm:ss"):通过TEXT函数转换时间格式,返回15:23:12。

方法二:使用REPLACE和MID函数
当然还可以使用REPLACE和MID函数来精确提取并重新格式化数据:
=REPLACE(REPLACE(REPLACE(LEFT(A1, FIND(" ",A1)-1), FIND("年", A1), 1, "-"),FIND("月", A1),1,"-"),FIND("日", A1),1,"")&" "&TEXT(MID(A1, FIND(" ",A1)+1, 10),"hh:mm:ss")
公式释义:
1、FIND(" ",A1):通过FIND函数找到在A1中位置。
2、LEFT(A1, FIND(" ",A1)-1):通过LEFT函数提取空格左侧的文本。
3、FIND("年", A1)、FIND("月", A1)、FIND("日", A1):通过FIND函数找到“年”、“月”、“日”在A1中的位置。
4、REPLACE(REPLACE(REPLACE(..))):通过REPLACE函数将“年”、“月”、“日”替换掉。
5、MID(A1, FIND(" ",A1)+1, 10):通过MID函数提取空格右侧的文本。
6、TEXT(MID(...),"hh:mm:ss"):通过TEXT函数转换时间格式,返回15:23:12。

方法三:结合LEFT、MID、FIND和TEXT函数
这个方法适用于需要更灵活处理不同格式时:
=TEXT(DATE(MID(A1, FIND("年", A1)-4, 4), MID(A1, FIND("月", A1)-2, 2), MID(A1, FIND("日", A1)-2, 2)) + TIME(MID(A1, FIND("时", A1)-2, 2), MID(A1, FIND("分", A1)-2, 2), MID(A1, FIND("秒", A1)-2, 2)), "yyyy-mm-dd hh:mm:ss")
公式释义:
1、MID(A1, FIND("年", A1)-4, 4)提取年份。
2、MID(A1, FIND("月", A1)-2, 2)提取月份。
3、MID(A1, FIND("日", A1)-2, 2)提取日期。
4、MID(A1, FIND("时", A1)-2, 2)提取小时。
5、MID(A1, FIND("分", A1)-2, 2)提取分钟。
6、MID(A1, FIND("秒", A1)-2, 2)提取秒。
7、TEXT(..., "yyyy-mm-dd hh:mm:ss")将组合后的日期时间格式化为所需的样式。

以上分享的这些方法都可以实现格式转换,要根据实际情况选择最适合的公式进行数据转换哦。
若还有疑问,或是分享更好的方法,欢迎在下方的评论区留言哦~
想了解更多精彩内容,快来关注