JDBC将Timestamp转换为NULL(zeroDateTimeBehavior问题)

时间:2014-03-27 19:06:25

标签: java mysql jdbc pentaho

我正在使用Pentaho数据集成(表输入步骤)从MySQL服务器提取数据。有两个字段属于' Timestamp',Pentaho因为时间戳为NULL而停止喷出错误(00:00:00.000000)。

我在参数中添加了zeroDateTimeBehavior=convertToNull,这些参数应该处理错误的时间戳,但它会将我的Timestamp数据的所有转换为NULL。

我认为可能发生这种情况的一个原因是因为我的一些“好”的事情。数据表示为,例如,2013-03-14 04:55:09.000000。虽然大多数日期都是“良好的数据”,但小数秒(.000000)可能会被解释为“不良”和“错误”。数据由zeroDateTimeBehavior参数组成,因此被转换为NULL。

我不确定这是不是为什么会发生这种情况,但是有人可以给我一些关于其他可能原因以及世界上我如何阻止这种情况的见解?也许转换成字符串可能是一个好主意,但我不知道该怎么做。

建议?

1 个答案:

答案 0 :(得分:2)

根据this回答,我可能会将字段的数据类型更改为datetime而不是timestamp。如果不这样做,则必须在读取数据的SQL中进行转换。前面的答案给出了如何做到这一点的例子。