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

在Talend中从Excel复制到SQL server数据库表时处理日期,sql,excel,date,talend,smalldatetime,Sql,Excel,Date,Talend,Smalldatetime,我正在将数据从Excel工作簿复制到SQL server数据库表。 我的Excel工作表中的一列有日期,这是我使用Rand函数生成的 如果我在Excel输入和SQL输出中都将列的数据类型保留为字符串。 我得到一个错误,上面写着 “将字符串转换为smalldatetime数据类型时,转换失败。” 如果我将数据类型保留为日期,它将给出一个错误 “单元格格式不是…(单元格地址)中的日期” 在SQL server中我的表的定义中。它的数据类型为“smalldatetime” 为了解决这个问题,我使用了t

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

如果我在Excel输入和SQL输出中都将列的数据类型保留为字符串。 我得到一个错误,上面写着 “将字符串转换为smalldatetime数据类型时,转换失败。”

如果我将数据类型保留为日期,它将给出一个错误 “单元格格式不是…(单元格地址)中的日期”

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

为了解决这个问题,我使用了tConvertType。 但我得到一个错误,它说: “单元格格式不是…(单元格地址)中的日期”

我附上了我的工作截图。


您需要在Talend作业中转换类型


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

您还可以使用TalendDate.parseDate方法进行转换。。。 这可以在tMap中的表达式中使用。因此,您可以使用TalendDate.parseDate(“yyyy-MM-dd HH:MM:ss”)从excel中读取日期作为字符串并将其转换为日期的流


输入->tmap->tmssqloutput组件。

嘿,我的工作有excel输入->tmap->tmssqloutput组件。我在哪里以及如何使用tConvertType组件?我的新工作流程是否类似于:Excel输入->tConvertType->tMap->tMSSqlOutput?我已经尝试过,但它给我一个错误,上面写着“java.text.ParseException:不可解析日期:”2001年11月30日星期五00:00:00 EST“你能编辑你的问题,提供一个日期的例子,以及你现在工作的截图吗?”?如果可能的话,还可以显示您的tConvertType的配置(我假设这就是抛出错误的原因?)。我一直在设置,如本视频所示。注意:尽管我已经从模式下拉列表中选择了Repository,但它会被更改为内置的。我已经尝试过了,但仍然给出了一个错误。请看我的截图。。我还为这篇文章添加了更多的验证。请查收