我正在开发一个SSIS包,它从SAP
读取数据。我创建了ADO.Net
来源,从ODBC connection
读取数据。
从SAP
数据中,有一个表格,其中包含日期列,日期值的格式为12.03.2014 00:00:00
现在我想将其转换为日期时间格式YYYY-MM-DD
。
我可以在SQL command
ADO.Net
源工具中执行此操作吗?
答案 0 :(得分:2)
--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
答案 1 :(得分:2)
我真的不知道如何使用SQL驱动程序使用SAP驱动程序实现此目的,但这里有一些有用的信息
如果您使用的是 DateTime 数据类型,则日期时间不会与其格式一起存储,而是存储为数字或字符串值(存储日期的方式很多(与使用的数据提供者有关);小数或两个整数,......)。
有关详细信息,请查看:
日期格式与您的区域,应用程序,DBMS设置相关
如果要显示其他格式的日期,则必须更改相关设置。或者,您可以使用脚本组件将其转换为具有特定格式的String
数据类型:
如果日期存储为字符串
如果Date列是一个字符串,则可以在脚本组件中使用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");
}
答案 2 :(得分:0)