【问题标题】:Convert date DD.MM.YYYY hh:mm:ss to YYYY-MM-DD in SSIS在 SSIS 中将日期 DD.MM.YYYY hh:mm:ss 转换为 YYYY-MM-DD
【发布时间】:2017-05-19 11:29:56
【问题描述】:

我正在开发一个 SSIS 包,它从 SAP 读取数据。我创建了ADO.Net 源,它从ODBC connection 读取数据。

SAP的数据中,有一个表有日期列,日期值的格式是12.03.2014 00:00:00

现在我想把它转换成日期时间格式YYYY-MM-DD

我可以在SQL commandADO.Net 源工具中执行此操作吗?

【问题讨论】:

  • 试试这个 REPLACE((DT_WSTR, 10)(DT_DBDATE)GETDATE(),"-","")
  • 感谢您的回复,让我试试这个。
  • @Srini131 收到此错误 - 错误 [42000] [IBM] [System i Access ODBC 驱动程序] [DB2 for i5 / OS] SQL0104 - 令牌 DT_WSTR 无效。有效令牌:(. (CWBODBC.DLL)

标签: sql-server datetime ssis ado.net etl


【解决方案1】:
--Yes you Can do it In SQL SERVER

Declare @Date Datetime
SET @Date='12.03.2014 00:00:00'

SELECT @Date=CONVERT(NVARCHAR(50),@Date,112)
SELECT @Date

【讨论】:

  • 用户在 SSIS 中询问
  • @Srini131 OP 实际上要求 我可以在 ADO.Net 源工具的 SQL 命令 中执行此操作吗?
  • 112 为您提供YYYYMMDD,您可以为 126 并在包含连字符的地方左移。我不确定这种语法是否适用于 SAP 的驱动程序
【解决方案2】:

我真的不知道如何使用 SAP 驱动程序使用 SQL 命令来实现这一点,但这里有一些有用的信息

如果您使用 DateTime 数据类型,Datetime 不会以其格式存储,它们存储为 Number OR string(存储日期的方式有很多种(与使用的数据提供者有关);小数或两个整数,...)

欲了解更多信息,请查看:

日期格式与您的区域、应用程序、DBMS 设置相关

如果您想以其他格式显示日期,您必须更改相关设置。或者您可以使用脚本组件将其转换为具有特定格式的String 数据类型:

如果日期存储为字符串

如果日期列是一个字符串,您可以在脚本组件中使用DateTime.ParseExact 方法。 (假设outDate是输出列,inDate是输入列)

using System;
using System.Globalization;


CultureInfo provider = CultureInfo.InvariantCulture;

public override void Input0_ProcessInputRow(Input0Buffer Row)
{
    Row.outDate = DateTime.ParseExact(Row.inDate,"dd.MM.yyyy HH:mm:ss",provider).ToString("yyyy-MM-dd");
}

有关此方法的更多信息,您可以参考以下链接:

如果日期存储为日期

using System;
using System.Globalization;


CultureInfo provider = CultureInfo.InvariantCulture;

public override void Input0_ProcessInputRow(Input0Buffer Row)
{
    Row.outDate = Row.inDate.ToString("yyyy-MM-dd");
}

【讨论】:

    【解决方案3】:

    获取驱动列组件并按预期转换日期,如下例所示:

    (DT_STR,4,1252)DATEPART("yyyy",GETDATE()) + RIGHT("0" + "-" + (DT_STR,2,1252)DATEPART("mm",GETDATE()),2) + "-" + RIGHT("0" + (DT_STR,2,1252)DATEPART("dd",GETDATE()),2) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-13
      • 2019-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      相关资源
      最近更新 更多