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

时间:2014-05-28 15:28:04

标签: sql excel date talend smalldatetime

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

如果我将我的列的数据类型保存为Excel输入和SQL输出中的字符串。 我收到一个错误 “将字符串转换为smalldatetime数据类型时转换失败。”

如果我将我的数据类型保留为Date,则会显示为错误 “单元格格式不是日期......(单元格地址)”

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

要解决此问题,我使用的是tConvertType。 但是我收到的错误是: “单元格格式不是日期......(单元格地址)”

我附上了我的工作截图。 enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

你也可以使用TalendDate.parseDate方法进行转换...... 这可以在tMap中的表达式中使用。所以你的流程从excel读取日期为String并使用TalendDate.parseDate将其转换为日期(" yyyy-MM-dd HH:mm:ss",&# 34;&#34)

输入 - > tmap - > tmssqloutput components。

答案 1 :(得分:0)

您需要转换Talend作业中的类型。

以字符串形式读取日期,然后使用tConvertType组件将类型从字符串转换为具有特定日期格式的日期类型。然后,您应该能够以smalldatetime数据类型

将其发送到数据库