Excel日期格式变数字,如何在mysql中处理回来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel日期格式变数字,如何在mysql中处理回来相关的知识,希望对你有一定的参考价值。

参考技术A     将Excel文件中的数据保存到mysql中时,发现日期变成了数字。

    当excel中的日期以数字显示就会变成类似44721.81这样的数字,这是从1900年开始的天数。

    而UNIX时间戳的 0 按照 ISO 8601 规范为 :1970-01-01T00:00:00Z.。也就是从1970开始。

    那当我们需要在其他地方处理excel这种时间时就只需要加上70年就行了。接下来的问题就是如何知道这70年的秒数或毫秒数,可以在excel输入1970/1/1然后转换成数字得到25569,这是天数,秒则为25569*24*60*60=2209161600。毫秒的话再乘1000。精度取到秒和毫秒按实际情况定。

    在excel中有个日期2022/6/9 19:31:57.850,当其为数字格式时为44721.813864,就叫他Excel时间。

    如果需要在java中将其转化为日期,Date date = new Date(new Long(时间戳);这里需要毫秒精度的时间戳。先将Excel时间*一天的毫秒数(24*60*60*1000)-70年(2209161600*1000)-8小时时差(8*60*60*1000)=1654774317850。代入上方得到2022/6/9 19:31:57.850,转换正确。

    如果需要在mysql中将其转化为日期,FROM_UNIXTIME(时间戳,'%Y-%m-%d %H:%i:%S');这里只需要秒精度的时间戳。先将Excel时间*一天的秒数(24*60*60)-70年(2209161600)-8小时时差(8*60*60)=1654774317。代入上方得到2022/6/9 19:31:57,转换正确。

    当excel中的日期到mysql中变成数字了,只需要FROM_UNIXTIME(Excel时间*86400-2209190400,'%Y-%m-%d %H:%i:%s')就可以转化成正常时间了

Excel 怎样把数字字符串改成日期

参考技术A 如果将字符串“20170327”改成日期,可直接选择字符串的列,作分列处理,直接一列,设置格式为日期格式YMD,完成即可

当然可用日期函数和截取字符的函数处理。

以上是关于Excel日期格式变数字,如何在mysql中处理回来的主要内容,如果未能解决你的问题,请参考以下文章

excel如何将数字日期变成斜杠日期

Excel 怎样把数字字符串改成日期

在Excel里,日期为啥变成了数字

为啥excel日期格式会变成数字

excel日期变数字为啥要点一下编辑栏才能变

在excel中如何将输入的数字自动转换为日期