SSIS - 创建DateTime的脚本问题

时间:2013-05-03 09:11:23

标签: visual-studio-2008 datetime ssis

我正在使用SSIS将数据从CSV文件上传到我的数据库中的表。我试着得到2个字符串(一个用于日期,另一个用于时间)并将它们连接起来:

string datsDateTime = String.Concat(Row.DATE, " ", Row.HEURE);     

然后,我尝试像这样解析它:

Row.DateTime = DateTime.ParseExact(datsDateTime, "dd/MM/yyyy HH:mm", null);

但它不起作用。当我尝试测试这个脚本时,我收到了这个错误:

String was not recognized as a valid DateTime.
   at System.DateTimeParse.ParseExact(String s, String format, DateTimeFormatInfo dtfi, DateTimeStyles style)
   at ScriptMain.Input0_ProcessInputRow(Input0Buffer Row)
   at UserComponent.Input0_ProcessInput(Input0Buffer Buffer)
   at Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.ProcessInput(Int32 inputID, PipelineBuffer buffer)

我正在使用Visual Studio 2008.有什么想法吗?

编辑:在我的csv文件中的“日期”列中,日期是一个字符串,如下所示: 20120101 (2012年,01月份)和当天的01)。

更新:好的,我通过这样做找到了解决方案 string datsDateTime = Row.DATE.Insert(6,"/").Insert(4, "/") + " " + Row.HEURE; 在做任何事之前。希望它会有所帮助。

1 个答案:

答案 0 :(得分:1)

您应该将格式更改为

Row.FinalDate = DateTime.ParseExact(datsDateTime, "yyyyMMdd HH:mm", null);

因为您以yyyymmdd格式获取日期 日期不是string而是integers。如果您想以dd / mm / yyyy格式显示数据,那么您可以使用具有特定格式的ToString()方法,如

YourDate.ToString("dd/MM/yyyy")

但是由于您存储在数据库中,它将作为整数存储 检查sql server中的Dateformat

dbcc useroptions