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

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

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

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

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

(时 *  60 + 分 ) / 24 * 60

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

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

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

转载于:https://www.cnblogs.com/leftfist/p/6808637.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用matlab导入excel数据为矩阵的方法如下: 1. 打开matlab软件,点击“导入数据”按钮。 2. 在弹出的对话框中,选择要导入excel文件,并点击“打开”。 3. 在“导入向导”中,选择“从文件导入数据”,并点击“下一步”。 4. 在“选择数据类型”中,选择“矩阵”,并点击“下一步”。 5. 在“选择工作表”中,选择要导入的工作表,并点击“下一步”。 6. 在“选择数据范围”中,选择要导入数据范围,并点击“下一步”。 7. 在“选择数据格式”中,选择数据格式,并点击“下一步”。 8. 在“指定变量名称”中,指定变量名称,并点击“完成”。 9. 导入完成后,可以在matlab的工作区中查看导入的矩阵数据。 <br>### 回答2: Matlab是一款强大的数学计算软件,它可以方便地将Excel表格中的数据导入为矩阵。导入Excel数据为矩阵可以极大地方便处理数据,加快数据分析的速度。 Matlab导入Excel数据为矩阵的方法如下: 1. 首先需要打开Excel表格,选择要导入数据。 2. 在Excel表格中选择“编辑”选项卡,在“剪切板”组中找到“复制”。 3. 打开Matlab软件,选择“文件”选项卡,在下拉菜单中选择“新建”。 4. 在新建的文件中,选择“编辑”选项卡,在下拉菜单中选择“粘贴”。 5. 在弹出的界面中选择“导入数据”,在“已知数据类型”中选择“数值”即可。 6. 在弹出的“导入数据”界面中,选择“导入到矩阵”即可。 7. 最后点击“完成”按钮,即可完成Excel数据导入为矩阵的操作。 需要注意的是,在导入数据时,需要注意数据的类型,比如整数、小数等。同时,在导入数据时,也需要注意表格的格式是否正确,以免导致数据导入不准确。 总的来说,将Excel数据导入为矩阵可以为数据分析提供更为便捷的方式。当然,Matlab还有很多其他的数据处理和分析功能,需要我们在实际工作中不断学习和实践。 <br>### 回答3: MATLAB是一款强大的数学软件,可以进行数据分析、建模、仿真等操作。在数据处理方面,经常需要将Excel中的数据导入MATLAB中。下面将介绍几种方法将Excel数据导入MATLAB中,并转为矩阵。 方法1:使用built-in importdata函数 MATLAB内建有一个函数importdata,可以用于导入各种数据格式。这个函数非常方便,只需输入Excel数据文件名即可将数据导入MATLAB中。例如: ```matlab data = importdata('data.xlsx'); ``` 其中,data为导入数据,并自动保存为结构体(struct)类型变量,可以通过data.data访问数据矩阵。 方法2:使用xlsread函数 除了importdata函数之外,MATLAB还有一个内建的导入Excel数据函数xlsread。xlsread函数的输入参数是文件名、工作表名或者地址,返回值是包含Excel数据的矩阵。例如: ```matlab [data, txt, raw] = xlsread('data.xlsx'); ``` 其中,data为导入数据矩阵,txt为导入的文本数据(如果有)、raw为导入的所有数据(包含公式和文本)。需要注意的是,xlsread函数只能导入数值数据,对于公式等数据需要通过后续处理展开计算。 方法3:使用readtable函数 readtable函数是MATLAB在R2013b版本后新增的函数,用于导入表格数据并转化为表格型数据。该函数输入为Excel数据文件名,返回值为表格型数据。可以通过转换为数组和矩阵类型,实现与传统的导入方式的相同结果。例如: ```matlab dataTable = readtable('data.xlsx'); dataArray = table2array(dataTable); dataMatrix = dataArray(:,2:end); ``` 其中,dataTable是导入的表格型数据(Table),dataArray是转换为数组类型数据,dataMatrix是取data中全部数据转化为矩阵类型。 需要说明的是,当导入Excel文件路径、文件名或工作表名中含有中文等非ASCII字符时,上面三种方法可能会出现错误,此时需要将Excel文件名转化为带有全路径的Unicode字符形式,或是修改电脑系统(代码)的中文编码方式。 综上所述,MATLAB提供了多种方法将Excel数据导入为矩阵类型,并支持更灵活的表格型数据导入和操作。用户可根据具体需求选择合适的方法进行数据导入

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值