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

2024-04-18

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

我添加了一个zeroDateTimeBehavior=convertToNull到应该处理错误时间戳的参数,但它正在转换all我的时间戳数据为 NULL。

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

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

建议?


基于this https://stackoverflow.com/questions/409286/datetime-vs-timestamp答案,我可能会将字段的数据类型更改为datetime而不是timestamp。如果不这样做,则必须在读取数据的 SQL 中进行转换。前面的答案给出了如何做到这一点的示例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JDBC 将时间戳转换为 NULL(zeroDateTimeBehavior 问题) 的相关文章

随机推荐