Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SSIS派生的列日期格式是否有合适的技术?_Sql Server_Oracle_Ssis - Fatal编程技术网

Sql server SSIS派生的列日期格式是否有合适的技术?

Sql server SSIS派生的列日期格式是否有合适的技术?,sql-server,oracle,ssis,Sql Server,Oracle,Ssis,我只需在SSIS派生列中编写最令人兴奋的表达式,即可将日期格式化为“01-JAN-2010”。它的格式如下: 一定有更好的办法。。。不是吗?考虑使用脚本组件,然后使用Row.stringcol=Row.datecol.ToString(“dd-MMM-yyyy”)在数据流中填充一个新的字符串列。如果要使用表达式,可以使用以下方法: 右(“0”+(任务开始日期),2)天(任务开始日期),2”+“-”+子字符串(“Janfebmarapmayjunjulaugsepoctnovdec”,“3*个月

我只需在SSIS派生列中编写最令人兴奋的表达式,即可将日期格式化为“01-JAN-2010”。它的格式如下:


一定有更好的办法。。。不是吗?

考虑使用脚本组件,然后使用
Row.stringcol=Row.datecol.ToString(“dd-MMM-yyyy”)
在数据流中填充一个新的字符串列。

如果要使用表达式,可以使用以下方法:

右(“0”+(任务开始日期),2)天(任务开始日期),2”+“-”+子字符串(“Janfebmarapmayjunjulaugsepoctnovdec”,“3*个月(任务开始日期))-2,3)+(任务开始日期,4)年(任务开始日期)


没说更好。只是不一样而且更短。如果你想更好地控制局面,请按照凯德的建议使用脚本。

好了,现在我觉得自己像头驴子。简单的解决方案是使我的数据源成为select语句,在该语句中,我只需像下面这样处理该列:

选择“任务开始日期(dd-MON-yyyy)”任务开始日期从…

顺便说一句,RDBMS是Oracle

那么我就不需要做派生列或脚本了


我因没早点想到这件事而被自己打了一巴掌。感谢所有人的帮助。

+1对于使用这项工作,Redonkuous hahaI假设您将退出SQL Server(它没有一种非常简单的方法来实现特定的格式),我在退出时写了一个格式化建议,但后来决定用t-SQL进行格式化仍然太麻烦。我想你不会进入SQL Server,因为我会问你为什么要将这个日期格式化为文本。谢谢你,凯德,很抱歉我的滑稽浪费了你的时间。它将进入一个平面文件,这就是为什么需要不寻常的格式。因此,甚至根本不需要通过SQL Server?@Cade,数据可能在另一个过程中最终进入SQL Server数据库,但这个特定的包只是从Oracle提取数据,并将其放入文件服务器上的平面文件中。否则,我只需在数据流任务中选择Oracle并插入SQL Server。