2013-05-03 70 views
0

我正在使用SSIS创建一个包,该包将存储我的数据库表中的excel文件中的数据。其中一列是DateTime类型列。在我的剧本,我这样做:C# - SSIS:将字符串转换为日期的脚本问题

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

但是,当我启动脚本,并返回此错误,这是行不通的:

String was not recognized as a valid DateTime : at System.DateTimeParse.ParseExact(String s, String format, DateTimeFormatInfo dtfi, DateTimeStyles style) 

我不知道该怎么办的想法。 Row.BillingDate是一个DateTime,Row.F4是一个字符串。我该如何解决这个问题?

编辑:F4包含一个字符串,它代表dd/mm/yyyy格式的日期。

+3

'Row.F4'的价值是什么? – Stefan 2013-05-03 12:37:00

+0

这是一个表示日期的字符串。这个日期的格式是dd/MM/yyyy。例如:31/12/2012 – Traffy 2013-05-03 12:42:48

+3

你为什么试图从没有h/m/s的刺痛中解析hms? – billinkc 2013-05-03 12:44:56

回答

1

IIRC,您指定的格式(通过"yyyy/MM/dd HH:mm:ss")必须与字符串所在的格式相匹配。请尝试DateTime.ParseExact(Row.F4.ToString(),"dd/MM/yyyy", CultureInfo.InvariantCulture);

另请注意,您不指定时间。如果解析成功,则时间将评估为午夜(0:00:00)。

+0

感谢您的回答。但是,我遇到了同样的问题,称该字符串未被识别为有效的DateTime。 – Traffy 2013-05-03 12:53:03

+0

@Traffy我已经编辑了我的答案,你可以给'CultureInfo.InvariantCulture'一个去吗? – Stefan 2013-05-03 12:56:36

+0

Thnaks再次,但我试过这样,没有什么变化。我的F4数据包含一个表示日期的字符串,例如:2012年12月31日 – Traffy 2013-05-03 12:59:19