导入EXCEL 时间数据为小数 问题

网友投稿 901 2022-09-29

导入EXCEL 时间数据为小数 问题

导入EXCEL 时间数据为小数 问题

同事在做将EXCEL导入数据库功能时发现一个奇怪的问题:在EXCEL中,有一列数据明明呈现出时间格式,比如:​​18:35​​​,但导到数据库中,居然一串长长的小数:​​0.7743055555555556​​,我靠,这是什么鬼。

后来发现,原来EXCEL里面,其实就是小数,只不过,设置单元格格式为时间时,就呈现 时:分 这种友好的样子;当设置为文本时,立刻原形毕露。

怎么办呢?在网上寻寻觅觅,没有头绪。这是一种什么样的时间格式?或者说,这是一种什么样的时间?为什么不是UTC?从1900年以来的,格林威治时间的秒数?

关键是要理清思路。原来,这个小数是 时分 在 一天 中的占比。也就是:

(时 * 60 + 分 ) / 24 *

公式的意义不言而喻(同理,如果有秒,就将时间全部换算成秒再计算就行了),细想系统这么处理也是有道理的,时间格式那么多,索性全部换成数字最准确。为啥不是什么UTC之类,因为没有日期,只有时间。

知道了原因就简单了。我们将EXCEL原原本本导入到数据库,呈现的时候,在页面换算一下就行了。换算方法如下:

时 = 小数 *24 取整(不要四舍五入)分 = (小数 * 24 * 60 )% 60

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅析小程序中什么是behaviors?怎么创建和使用?
下一篇:聊聊程序员如何学习英语单词:写了一个记单词的小程序
相关文章

 发表评论

暂时没有评论,来抢沙发吧~