使用SSIS读取Excel时的日期格式

问题描述

专家! 我有两个类似的Excel文件(xlsm)作为模板。两者都有带有“日期”列的工作表。 使用Excel时,两个文件的可见格式均为“ 10-Aug-20”。 但是,当我使用Microsoft.ACE.OLEDB.12.0和“ IMEX = 1”的Script Component Source和Script Component Source通过SSIS进程读取这些文件时,ta-da ...我看到的有些与预期的一样,但是有些是10.08.2020 00: 00:00 这使我非常痛苦,因为我将同时处理美国(MM / dd / yyyy)和德国(dd.MM.yyyy)日期格式的文件,并且希望使用与语言环境无关的日期格式以相同的方式处理日期。 我该如何强制excel或sis读取正确的日期格式。

关于如何以编程方式查看两个文件的任何建议都是最需要的,并受到高度赞赏!

解决方法

您可以尝试通过使用DateTime.TryParseExact

使用脚本组件(如Transformation)来转换数据。
  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,"de-DE",out dateTime))
        {
            Console.WriteLine(dateTime);
        }