如果我有一个DT_DBDATE或DT_DBTIMESTAMP类型的列,并且我使用Flat File Destination组件将数据写入文件,则生成的日期格式将为YYYY-MM-DD HH:MM:SS。我已尝试更改包语言环境并更改平面文件连接管理器中的数据类型,但这些似乎没有任何效果。
什么决定了这种格式,有什么办法可以改变默认格式吗?
PS。我知道我可以使用数据转换和派生列组件来更改数据类型/格式。关键是我们有+150个软件包,并且当有人忘记进行转换或者输入不正确时会出现太多错误。
我们正在使用SSIS 2012。
答案 0 :(得分:0)
我在使用SSIS 2008和SQL Server 2008 R2时遇到了类似的问题。如果您尝试生成CSV文件,我建议首先在数据库级别以所需格式存储该值。这意味着,例如,如果要显示当前日期格式为YYYY-MM-DD的列,则应使用适当的代码来存储该值。使用T-SQL将是: convert(varchar(10),cast(GETDATE()as date),126)。通过阅读表格,仔细检查该值是否以所需格式存储。现在它出现了棘手的部分:无论您在SSIS中使用什么来转换日期,如果您使用Excel打开CSV,那么Excel将使用为操作系统设置的格式显示日期。不要惊慌,只是在你想关闭它时不要保存该文件。相反,如果您使用记事本或Notepad ++打开CSV,您应该能够以用于将其存储在数据库中的格式查看日期列。