【问题标题】:Converting dd-MON-yyyy to datetime using Script使用脚本将 dd-MON-yyyy 转换为日期时间
【发布时间】:2016-03-31 17:29:17
【问题描述】:

抱歉,我是 C# 新手,但是我有一些脚本组件的代码,用于转换具有 2013 年 1 月 12 日格式日期的 FlatFile 列。

我希望使用下面的脚本将其转换为 mm/dd/yyyy,但我不确定如何去做。我正在使用一些示例代码,其中 Column0 是我的输入列,我的 DateOut 是我的新日期 (Datatype=DT_DATE)。我的新专栏现在只给我“1899-01-01”。它与平面文件中的相应日期不匹配。知道我做错了什么吗?

   public override void Input0_ProcessInputRow(Input0Buffer Row)
{
    DateTime varDate;
    bool isParsed;

    isParsed = DateTime.TryParseExact(Row.Column0, "dd-mmm-yyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out varDate);

}  

【问题讨论】:

  • 鉴于您的输入日期格式清晰明确,您应该能够简单地将平面文件连接中的列指定为 DT_DATE 类型。它将在导入中转换并在您的流程中显示为 DT_DATE 类型,无需人工或脚本组件。可能会为您节省一些工作。

标签: c# visual-studio ssis


【解决方案1】:

您正在解析精确的 ddMMMyyyy,它只会解析 12Jan2013 形式的字符串(无破折号)

【讨论】:

  • 我继续并将其更改为 public override void Input0_ProcessInputRow(Input0Buffer Row) { string strValue = Row.Column0; Row.DateOut = DateTime.ParseExact(strValue, "dd-MMM-yyyy", System.Globalization.CultureInfo.InvariantCulture); } 但包现在没有运行,它在脚本组件中保持停滞状态。
猜你喜欢
  • 2011-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多