问题描述:因为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使用多行操作很方便。