3

在从一个表到另一个表的数据流中,我想投一个日期。

日期以以下格式作为字符串离开源表:“2009-01-05 00:00:00:000 + 01:00”。

我尝试使用 tConvertType 将其转换为日期,但这显然是不允许的。我的第二个选择是使用 tMap 组件中的公式将此字符串转换为日期。

目前我尝试了这些公式:

- TalendDate.formatDate("yyyy-MM-dd",row3.rafw_dz_begi);
- TalendDate.formatDate("yyyy-MM-dd HH:mm:ss",row3.rafw_dz_begi);
- return TalendDate.formatDate("yyyy-MM-dd HH:mm:ss",row3.rafw_dz_begi);

这些都不起作用。将结果插入目标表(MySQL、InnoDB)时,会收到日期无效的错误消息。目标字段的格式是 MySQL 日期字段。

如何将日期转换为所需的格式?

4

2 回答 2

3

Talend 为您提供了一种处理日期格式的好方法。您可以在tMap窗口的模式编辑器选项卡中轻松更改日期格式。

它适用于tMap输入和输出流。我添加了一张图片以获得更好的说明。

在此处输入图像描述

于 2013-05-22T13:58:36.167 回答
1

使用公式将此字符串转换为日期....日期无效的错误消息。目标字段的格式是 MySQL 日期字段。

我从您的问题中了解到,您想在 MySQL 日期字段中插入一个日期。

但是您使用的方法返回“字符串”类型。

TalendDate.formatDate(String pattern, Date date);    //formats a date into Date/Time string

因此,在这种情况下,如果您的字段是“日期”类型。

TalendDate.parseDate("yyyy-MM-dd", TalendDate.formatDate("yyyy-MM-dd",row3.rafw_dz_begi));
于 2018-03-26T15:27:07.310 回答