在从Excel复制到Talend中的SQL Server数据库表时处理date

我正在将数据从Excel工作簿复制到SQL Server数据库表中。 我的Excel工作表中的一列有date,我使用Rand函数生成date。

如果我在Excelinput和SQL输出中都将字段的数据types保存为string。 我得到一个错误,说“转换string转换为smalldatetime数据types转换失败。

如果我保持我的数据types为Date,它给出的错误是“单元格格式不是date在…(单元格地址)”

在我的表中定义在SQL服务器。 它的数据types为“smalldatetime”。

要解决这个问题,我正在使用tConvertType。 但是我得到一个错误说:“单元格格式不是date在…(单元格地址)”

我附上了我的工作截图。 在这里输入图像说明

在这里输入图像说明

你也可以使用TalendDate.parseDate方法进行转换…这可以在tMap中使用expression式。所以你的stream从excel读取date为String,并使用TalendDate.parseDate将其转换为date(“yyyy-MM-dd HH :MM:SS”, “”)

input – > tmap – > tmssqloutput组件。

你需要转换你的Talend工作的types。

以stringforms读取date,然后使用tConvertType组件将stringtypes转换为具有特定date格式的datetypes。 然后,您应该能够以smalldatetime数据types将其发送到数据库