Sql server CSV文件格式更改
我正在SSIS中使用平面文件数据提供程序从外部系统导入数据我对该文件没有任何控制权,它每周推出一次,我从一个公用文件夹中取出 CSV的前两列是日期。在文件中,日期格式已从日期更改为数字,如下所示:Sql server CSV文件格式更改,sql-server,excel,csv,ssis,etl,Sql Server,Excel,Csv,Ssis,Etl,我正在SSIS中使用平面文件数据提供程序从外部系统导入数据我对该文件没有任何控制权,它每周推出一次,我从一个公用文件夹中取出 CSV的前两列是日期。在文件中,日期格式已从日期更改为数字,如下所示: Service_Date, Event_Datetime 2018-04-30,2018-04-30 21:18 43220,43220.92412 如您所见,格式从日期更改为数字。此处未显示的其他日期列也已更改 显然,这破坏了数据流任务 除了进入Excel并使用正确的列格式保存CSV外,SSIS中
Service_Date, Event_Datetime
2018-04-30,2018-04-30 21:18
43220,43220.92412
如您所见,格式从日期更改为数字。此处未显示的其他日期列也已更改
显然,这破坏了数据流任务
除了进入Excel并使用正确的列格式保存CSV外,SSIS中是否有任何方法可以动态转换,以便作业不会失败并需要手动干预?这些数据值
4322043220.92412
称为日期序列,您可以通过多种方法获取日期值:
(1) 使用派生列
您可以使用派生列将此列转换为float,然后转换为datetime:
(DT_DATE)(DT_R8)[dateColumn]
参考资料
DateTime.FromOADAte()
函数,例如:(VB.NET中的代码)
参考
FINDSTRING(Date_Service,"-",1) != 0 ? (DT_DATE)Date_Service : (DT_DATE)(DT_R8)Date_Service
编写一个UDF来完成它。识别明显的Excel日期并进行转换,识别已知的文本格式并进行转换,使用转换和TRY_PARSE转换所有其他内容。如果提供的答案解决了问题,或者您同意,为什么要忽略它?您必须对其投赞成票或接受它,否则您应该留下评论,以便与回答者详细说明
FINDSTRING(Date_Service,"-",1) != 0 ? (DT_DATE)Date_Service : (DT_DATE)(DT_R8)Date_Service