如果我有类型dt_dbdate或dt_dbtimestamp类型的列,并且我使用平坦的文件目标组件将数据写入文件,则结果日期格式将yyyyy-mm-dd hh:mm:mm:mm:mm:SS。我已经尝试了更改软件包的位置并更改Flat File Connection Manager中的数据类型,但是这些似乎没有任何效果。
是什么决定了这种格式,有什么方法可以更改默认格式?
ps。我知道我可以使用数据转换和派生的列组件来更改数据类型/格式。关键是我们有 150软件包,当某人忘记进行转换或错误地进行时会遇到太多错误。
我们正在使用SSIS 2012。
我在将SSIS 2008与SQL Server 2008 R2一起使用时也有类似的问题。如果您想生成一个CSV文件,我建议您先在数据库级别上以所需的格式存储该值。例如,这意味着,如果要显示当前日期为格式Yyyy-MM-DD的列,则应使用适当的代码来存储该值。使用t-sql将是: convert(varchar(10),cast(getDate(GetDate(as)),126)。仔细检查该值是否通过读取表格存储以所需的格式存储。现在,这是一个棘手的部分:无论您在SSI中使用什么用于转换日期,如果您使用Excel打开CSV,则Excel将为操作系统设置使用格式的日期。不要惊慌,只是要关闭该文件时不要保存该文件。相反,如果您使用记事本或记事本 打开CSV,则应该能够以用于将其存储在数据库中的格式中查看日期列。