app开发者平台在数字化时代的重要性与发展趋势解析
901
2022-09-29
导入EXCEL 时间数据为小数 问题
同事在做将EXCEL导入数据库功能时发现一个奇怪的问题:在EXCEL中,有一列数据明明呈现出时间格式,比如:18:35,但导到数据库中,居然一串长长的小数:0.7743055555555556,我靠,这是什么鬼。
后来发现,原来EXCEL里面,其实就是小数,只不过,设置单元格格式为时间时,就呈现 时:分 这种友好的样子;当设置为文本时,立刻原形毕露。
怎么办呢?在网上寻寻觅觅,没有头绪。这是一种什么样的时间格式?或者说,这是一种什么样的时间?为什么不是UTC?从1900年以来的,格林威治时间的秒数?
关键是要理清思路。原来,这个小数是 时分 在 一天 中的占比。也就是:
(时 * 60 + 分 ) / 24 *
公式的意义不言而喻(同理,如果有秒,就将时间全部换算成秒再计算就行了),细想系统这么处理也是有道理的,时间格式那么多,索性全部换成数字最准确。为啥不是什么UTC之类,因为没有日期,只有时间。
知道了原因就简单了。我们将EXCEL原原本本导入到数据库,呈现的时候,在页面换算一下就行了。换算方法如下:
时 = 小数 *24 取整(不要四舍五入)分 = (小数 * 24 * 60 )% 60
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~