【发布时间】:2011-02-27 00:49:32
【问题描述】:
我只需要在 SSIS 派生列中编写最繁琐的表达式即可获得格式为“01-JAN-2010”的日期。它看起来像这样:
一定有更好的方法......不是吗?
【问题讨论】:
-
+1 使用作品 redonkulous 哈哈
标签: sql-server oracle ssis
我只需要在 SSIS 派生列中编写最繁琐的表达式即可获得格式为“01-JAN-2010”的日期。它看起来像这样:
一定有更好的方法......不是吗?
【问题讨论】:
标签: sql-server oracle ssis
考虑使用脚本组件,然后使用Row.stringcol = Row.datecol.ToString("dd-MMM-yyyy") 在数据流中填充新的字符串列。
【讨论】:
如果你想使用表达式,你可以用这个来代替:
RIGHT("0" + (DT_WSTR, 2)DAY(ASSIGNMENT_BEGIN_DATE), 2) + "-" + SUBSTRING("JANFEBMARAPPRMAYJUNJULAUGSEPOCTNOVDEC", (3 * MONTH(ASSIGNMENT_BEGIN_DATE)) - 2, 3) + (DT_WSTR, 4 )YEAR(ASSIGNMENT_BEGIN_DATE)
没有说它更好。它只是不同且更短。如果您想要更好的控制,请使用 Cade 建议的脚本。
【讨论】:
好吧,现在我感觉自己像头驴了。简单的解决方案是让我的数据源成为一个选择语句,在其中我只需像这样处理该列:
SELECT to_char(assignment_begin_date, 'dd-MON-yyyy') assignment_begin_date FROM ...
RDBMS 是 Oracle,顺便说一句。
然后我不需要做派生列或脚本。
我已经自我管理了一个涂料,因为没有早点想到它。感谢大家的帮助。
【讨论】: