问题描述:因为EXCEL导出字段是葡语,与表中字段不对应,不能使用navicat一键导入,所以要将excel表的数据用value提取出来用insert语句插入,但是其中某张表excel的="values('"&A2&"','"&B2&"');"这个函数,将原本的日期数据转成了一串数字
实际得到内容:
猜测:和mysql的date_add()函数有关,类似select date_add(1900年1月1号, 43105);1900年1月1号是因为Excel中的日期是从1900年1月1日开始的。
实践:使用另外一个函数=TEXT(目标数据,"YYY/MM/DD")或者输入=点此处,选择text
这样的可以提前看到转出的内容,可以按照想要的格式转换,将文本形式的日期(数字)转成日期。新建一列,把所有数据转换之后在VALUE里面取值新的一列即可
注意
:
Mysql的起始时间是2001-01-01 00:00:00,wps和excel是1900-01-01 00:00:00,如果字段里面有空值,新生成的一列中会自动把空值设置为起始时间,插入数据库之后还要把字段更新成null或者指定值。
UPDATE 表名 SET 字段名= null WHERE 字段= '2001-01-01 00:00:00';
如果字段很多可以在idea里新建个text使用多行操作很方便。
value
值可以为毫秒的时间戳,例如:16481008820000
value
可以为
日期
组合(可以为年,年月,年月日),例如:19781001
value
可以为
日期
形式,例如:2000-1-1 或 2000/1/1
value
可以为
日期
加时间,例如:2000-1-1 10:10:10
value
值采用递进式,即年是必须的,如果有日的话,就必须有月。例如:2002、2002-10、2002-10-1
value
值对于01和1是一致的
value
可以为长
日期
、完整
日期
、短
日期
、
首先R单元格和S单元格中的
日期
必须为有效
日期
;例如:2000/1/1(注意:
日期
不能为2000/0/0或2000/1/32)一定要为有效
日期
!
其次R单元格一定是开始
日期
,S单元格一定是结束
日期
;(也就是S
日期
在R
日期
后边)
=datedif(r1,s1,"d") //计算天数差
=datedif(r1,s1,"m") //计算月数差
=datedif(r1,s1,"y") //...
记一次SimpleDateFormat 格式化
日期
,解析出来的
日期
错误
!
今天将2021-12-16 00:00:00格式的
日期
转为20211216格式的,通过使用SimpleDateFormat进行格式化,解析后的结果竟然是20201102。
解决办法:
分两次解析,第一次解析格式yyyy-MM-dd格式的 发现Date 时间戳已经正确了,再创建一个SimpleDateFormat 对象,调用format方法即可得到想要的格式字符串。
poi把
日期
数据也归类为Cell.CELL_TYPE_NUMERIC数字类型,
并且在cell中是正确读取到了 2015-05-25,但是在使用cell.getNumericCell
Value
()方法获取时却发生了变化,返回了42149.0
* 获取每个单元格的内容
private static Object getCel...
<el-pagination
:page-size="pageSize" // 设置每页显示多少条
@current-change="currentChangeHandle" // 当前页数改变时调用
函数
:current-page="currentPage" // 当前第几页
layout="total
#
VALUE
!(
函数
返回的
错误
值),经常使用
excel
表格的同学并不陌生。因
函数
使用时参数等导致出现#
VALUE
!
问题
,对于表格表姐,这本不是什么太大的困难,但要是遇到一个强迫症表哥,数据表格中满眼#
VALUE
!,这压力有多大是可以想象的到的。还有一点,没有几个领导会对有#
VALUE
!存在的报告有好感,所以,还是找去掉#
VALUE
!的解决方案吧。
赠送一个嵌套
函数
,你不用知道它内部是如何运行,只