我正在使用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;
在做任何事之前。希望它会有所帮助。
答案 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