代码之家  ›  专栏  ›  技术社区  ›  Dezzie

JDBC将时间戳转换为NULL(zeroDateTimeBehavior问题)

  •  6
  • Dezzie  · 技术社区  · 12 年前

    我正在使用Pentaho数据集成(表输入步骤)从MySQL服务器获取数据。有两个字段的类型为“时间戳”,Pentaho由于时间戳为NULL(0000-00-00 00:00:0000000),因此不断地抛出错误。

    我添加了 zeroDateTimeBehavior=convertToNull 到应该处理坏时间戳的参数,但它正在转换 全部的 时间戳数据的值设置为NULL。

    我认为这可能会发生的一个原因是,我的一些“好”数据被表示为,例如,2013-03-14 04:55:09.000。虽然大多数日期都是“好数据”,但zeroDateTimeBehavior参数可能会将小数秒(.000000)解释为“坏”数据,因此将转换为NULL。

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

    建议?

    1 回复  |  直到 12 年前
        1
  •  2
  •   Community Mohan Dere    9 年前

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