【问题标题】:Handling Dates while copying from Excel to SQL server database table in Talend在 Talend 中从 Excel 复制到 SQL Server 数据库表时处理日期
【发布时间】:2014-05-28 15:28:04
【问题描述】:

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

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

如果我将我的数据类型保留为 Date 它给出的错误是 "单元格格式不是 ....(单元格地址)中的日期"

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

为了解决这个问题,我使用了 tConvertType。 但我收到一条错误消息: "单元格格式不是 ....(单元格地址)中的日期"

我附上了我的工作截图。

【问题讨论】:

    标签: sql excel date talend smalldatetime


    【解决方案1】:

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

    输入 -> tmap -> tmssql输出组件。

    【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 嘿,我的工作有 excel 输入 -> tmap -> tmssqloutput 组件。我在哪里以及如何使用 tConvertType 组件?
    • 我的新工作流程会像:Excel Input -> tConvertType -> tMap -> tMSSqlOutput 吗?
    • 我试过了,但它给了我一个错误,上面写着“java.text.ParseException: Unparseable date: "Fri Nov 30 00:00:00 EST 2001"
    • 您能否编辑您的问题以提供即将到来的日期的示例以及您现在工作的屏幕截图?如果可能的话,还要显示你的 tConvertType 的配置(我假设这是在这里抛出错误的原因?)
    • 我已经用截图编辑了这个问题。 youtube.com/watch?v=2TCmUs8_9uM我一直按照这个视频的设置。注意:即使我从模式下拉列表中选择了存储库,它也会更改为内置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    • 2021-02-06
    • 1970-01-01
    • 2017-12-20
    • 2014-04-09
    • 2021-01-31
    • 2023-04-05
    相关资源
    最近更新 更多