我在这个问题上需要你的帮助,
我有一个talend作业,它使用简单的tmap将数据从表加载到另一个表。
我把它称为一个神秘的错误,因为它仅仅针对特定的日期时间
java.sql.SQLException: Could not parse column as timestamp, was: "2009-06-01 00:00:00"
包含此行的行前面的数千行不会生成错误
当我将此日期 2009-06-01 00:00:00 修改为另一个或仅更改日期部分或月份甚至小时时,它会无错误。< /强>
数据源是 mariadb ,目的地是 Mysql 数据库
向你求助
这是包含生成错误的代码的一部分
if (colQtyInRs_tMysqlInput_5 < 6) {
row5.created_at = null;
} else {
if (rs_tMysqlInput_5.getString(6) != null) {
String dateString_tMysqlInput_5 = rs_tMysqlInput_5
.getString(6);
if (!("0000-00-00")
.equals(dateString_tMysqlInput_5)
&& !("0000-00-00 00:00:00")
.equals(dateString_tMysqlInput_5)) {
row5.created_at = rs_tMysqlInput_5
.getTimestamp(6);
} else {
row5.created_at = (java.util.Date) year0_tMysqlInput_5
.clone();
}
} else {
row5.created_at = null;
}
}
答案 0 :(得分:0)
由于您未在
中提供进一步的信息源数据的外观如何,例如它是源中的日期字段还是字符串字段?
为什么解析会发生,这似乎与作为字符串的源数据有关
解析模式的外观如何
我将在这里假设一下。
第一:我假设你在源代码中提供了一个字符串。由于是这种情况,您需要确保列中的日期始终采用相同的格式。此外,您需要向我们展示解析的时间戳格式。
第二次:您说您需要更改日期值以使其正常工作。在我看来这是一个解析问题,所以例如你偶然切换了月和日字段,例如yyyy-dd-mm HH:mm:ss
或类似的东西。同样,这取决于您的解析字符串。
由于这个I created a blog post for date handling in Talend经常会有一些混淆,你也可以参考。
答案 1 :(得分:0)
此错误是由于Timezone,在尝试了许多解决方案后,我考虑更改时区,因为我的笔记本电脑是UTC,数据库时区是UTC + 01,因此Talend在本地环境中生成此错误。 希望它会帮助别人