kettle : String:couldn't convert string [] to a date using format [yyyy/MM/dd HH:mm:ss.SSS] on

网上的解决办法:
1.如果你的数据是mysql导入的,点击以下链接:
mysql导入的数据

2.又或者是这样的:
替换null值组件

不过对我都没有用。呜呜呜!

数据导入与预处理的实验。

以下是我自己的实验和解决过程,实验目的是合并四张excel表:

1.建立转换,创建Excel输入和Mirosoft Excel输出。
kettle : String:couldn't convert string [] to a date using format [yyyy/MM/dd HH:mm:ss.SSS] on

2.在Excel输入文件的“文件”标签卡中增加文件。

kettle : String:couldn't convert string [] to a date using format [yyyy/MM/dd HH:mm:ss.SSS] on

3.然后“内容”标签卡中获取工作表。
kettle : String:couldn't convert string [] to a date using format [yyyy/MM/dd HH:mm:ss.SSS] on

4.“字段”标签卡中获取字段。
kettle : String:couldn't convert string [] to a date using format [yyyy/MM/dd HH:mm:ss.SSS] on
是的,这里获取的字段很奇怪,应该是四组,大概每组对应一张Excel表(我刚好有四张表要合并),但我们实际上只需要文件1~7的字段。这里暂时先保持这个样子!

5.然后在“Microsoft Excel 输出”中,在“文件&工作表”标签卡中设置合并文件的保存路径及扩展名。
kettle : String:couldn't convert string [] to a date using format [yyyy/MM/dd HH:mm:ss.SSS] on

6.然后在“内容”标签卡中获取字段 。
kettle : String:couldn't convert string [] to a date using format [yyyy/MM/dd HH:mm:ss.SSS] on
同样获取到了四组类似字段,暂时保持这个样子。

7.执行转换报错。
kettle : String:couldn't convert string [] to a date using format [yyyy/MM/dd HH:mm:ss.SSS] on
正是题目所描述的错误。
开始解决错误,百度了一下,试了一下别人的方法,什么中间接一个“替换null值”的组件啊,可是一个都没成功。

最后我重新思考了一下这句话的意思,既然不能将string类型转化为date类型,那我干脆将字段“开课时间”的类型改为string类型,不让它转换类型了,这里将输入文件和输出文件中的字段都要进行修改,当然首先删除多余字段,只留1~7行的字段。至于为什么先前不删,我等下再说。
kettle : String:couldn't convert string [] to a date using format [yyyy/MM/dd HH:mm:ss.SSS] on
kettle : String:couldn't convert string [] to a date using format [yyyy/MM/dd HH:mm:ss.SSS] on

此时再次执行转换,终于转换成功。
kettle : String:couldn't convert string [] to a date using format [yyyy/MM/dd HH:mm:ss.SSS] on

查看转换结果:
kettle : String:couldn't convert string [] to a date using format [yyyy/MM/dd HH:mm:ss.SSS] on

合并成功!

8.好,说一说前面为什么不先删除多余字段。现在我重新开始一个新的转换,我提前删除了多余字段并将“开课时间”改为string类型,最后执行转换时,报错了

Unexpected conversion error while
converting value [v String] to a Number

指的是“学分”字段报错了,不能转变为数字类型。

于是按照前面的经验,我将其也设置为String类型,再执行转换

可是,依然报错,只不过此时说的是“课时数”不能转化为数字类型,于是我干脆将所有字段设置为string类型,终于执行转换通过。但是转换结果是这样的:
kettle : String:couldn't convert string [] to a date using format [yyyy/MM/dd HH:mm:ss.SSS] on

这不是我们想要的合并结果(编号没了),这也是字段类型全为string类型导致的。

所以总结一下,还是要按照之前的顺序来!

此为原创,希望对大家有用!