【问题标题】:Date Formats When Reading Excel with SSIS使用 SSIS 读取 Excel 时的日期格式
【发布时间】:2020-08-20 05:20:47
【问题描述】:

专家! 我有两个类似的 Excel 文件 (xlsm) 作为模板。两者都有带日期列的工作表。 使用 Excel 时两个文件的可见格式为“20 年 8 月 10 日”。 但是,当我使用带有“IMEX = 1”的 Microsoft.ACE.OLEDB.12.0 的 SSIS 进程和脚本组件源读取这些文件时... ta-da ...有些我看到了预期,但有些是 10.08.2020 00: 00:00 这给我带来了很大的痛苦,因为我将处理来自美国 (MM/dd/yyyy) 和德国 (dd.MM.yyyy) 日期格式的文件,并且希望使用与区域设置无关的日期格式来以相同的方式处理日期。 如何强制 excel 给出或读取正确的日期格式。

任何关于如何以编程方式查看相同文件的建议都是最需要和高度赞赏的!

【问题讨论】:

    标签: excel ssis script-component


    【解决方案1】:

    您可以尝试使用脚本组件(作为转换)通过 DateTime.TryParseExact 转换数据

      string dateString = "10-Aug-20";
      string format = "dd-MMM-yy";
      DateTime dateTime;
      if (DateTime.TryParseExact(dateString, format, "en-US",DateTimeStyles.None, out dateTime))//if (DateTime.TryParseExact(dateString, format, "de-DE",DateTimeStyles.None, out dateTime))
            {
                Console.WriteLine(dateTime);
            }
    

    【讨论】:

    • 问题是输入数据不明确。 10.08.2020 是 8 月 10 日还是 10 月 8 日?
    • 我明白了,你甚至不知道这应该被视为美国或德国...没有其他标志?
    猜你喜欢
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    • 2020-11-30
    • 2020-10-12
    • 2021-06-09
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    相关资源
    最近更新 更多