将带毫秒的MySQL日期转换为Google Sheets日期格式
将MySQL日期字符串转换为Google Sheets带毫秒的日期格式
我经常碰到用户需要把数据库导出的日期格式转到Google Sheets里,你这个需求其实很典型——MySQL的YYYY-MM-DD HH:MM:SS.sss格式字符串,要转成Sheets能识别并显示毫秒的日期格式,核心是要利用Sheets中日期本质是数值的特性:整数部分代表日期,小数部分代表时间(包括毫秒)。
方法一:基础公式(适用于固定三位毫秒)
假设你的日期字符串在单元格A1,可以直接用这个公式:
=DATEVALUE(LEFT(A1,10)) + TIMEVALUE(MID(A1,12,8)) + VALUE(RIGHT(A1,3))/86400000
逐个拆解下公式的作用:
LEFT(A1,10):提取字符串前10位的日期部分(比如2018-05-28),DATEVALUE()将其转换为Sheets的日期数值(整数)。MID(A1,12,8):提取第12位开始的8位时间部分(比如23:10:23),TIMEVALUE()将其转换为一天的时间比例(小数)。RIGHT(A1,3):提取最后三位的毫秒数(比如477),除以86400000(一天的总毫秒数:246060*1000),把毫秒转成一天的比例,加到前面的数值里。
方法二:通用公式(适配任意长度毫秒)
如果你的MySQL日期字符串毫秒部分长度不固定(比如1位或2位),可以用正则提取的方式兼容:
=DATEVALUE(LEFT(A1,10)) + TIMEVALUE(MID(A1,12,8)) + VALUE(REGEXEXTRACT(A1,"\.(.*)"))/(10^LEN(REGEXEXTRACT(A1,"\.(.*)"))*86400)
这里用REGEXEXTRACT(A1,"\.(.*)")精准提取小数点后的毫秒部分,再根据长度计算对应的比例,避免固定三位的限制。
最后一步:设置单元格格式
公式计算后得到的是一个数值(比如43248.96557265069),需要设置单元格格式才能显示带毫秒的日期:
- 选中计算结果的单元格
- 右键选择「格式单元格」
- 切换到「自定义格式」
- 输入格式代码:
yyyy-mm-dd hh:mm:ss.000 - 点击确定,就能看到
2018-05-28 23:10:23.477这样的格式了。
内容的提问来源于stack exchange,提问作者R_life_R
相关产品推荐
相关产品推荐

