2016-06-29 81 views
0

我有一个从我的数据库以信息,并在以下格式一堆日期.CSV文件:6/1/2016 0:00SSIS转换CSV到文本文件的更改日期格式

我不知道这事,但对于平面文件目标输入,外部列有它作为“[DT_DBDATE]”数据类型,而输入栏显示为“DT_DBTIMESTAMP”

的问题是,当我添加一个文件系统任务转换这个文件转换为.TXT文件,它将日期格式更改为:

2016-06-01 00:00:00 

如何防止发生这种情况并保持CSV格式的原始格式?

+0

除非您的最终目的地是美国人,否则2016-06-01 00:00:00格式是更可取的,因为这不是歧义 – Mike

+0

在这种情况下,这不是最好的。 – xyzcode

+1

只是为了澄清一些事情:1.使用日期数据类型存储在数据库中的日期没有格式。 2.确保你在文本编辑器中查看你的TXT文件,而不是excel。在这两种情况下,它都是强制使用格式的“客户端工具”。请注意,您当前的输出格式非常接近ISO格式,这与我们所能获得的标准日期格式相近。如果每个人都坚持ISO格式,我们可能会看到开发效率提高50%,因为所有这些令人沮丧的日期问题都会消失。 TXT文件是供人类或计算机使用的吗? –

回答

0

添加SSIS派生列,并使用下面的表达式

RIGHT("0" + (DT_STR,2,1252)DATEPART("mm",COLUMNNAME),2) + "/" + RIGHT("0" + (DT_STR,2,1252)DATEPART("dd",COLUMNNAME),2) + "/" + (DT_STR,4,1252)DATEPART("yy",COLUMNNAME) 

IMP:替换列名COLUMNNAME中输入文件

现在你可以映射在此列中的日期列输出文件。