I am importing a spreadsheet that has a date column labeled StartDate
(01/01/2000)
I need to split it into two columns one that is Month
the other that is Year
.
The Month
has to be the Month Name (Jan, Feb, etc) the other is a simple 4 digit year.
I want to do this through an SSIS package.
I have tried to created a derived column using some date expressions but I can't get anything to work the way I need it to.
Does anyone have any ideas on what is the proper script to do this?
Thank you.
I'm assuming StartDate has a Date-ish data type and has not been imported as a string (DT_STR or DT_WSTR).
Add a Derived Column into your Data Flow. Give it a name, like StartMonth, and use an expression like
MONTH([StartDate])
.Add a second Derived Column, call it StartYear and use an expression like
YEAR([StartDate])
And since I can't read, you asked for Month names. This gets a little uglier as there isn't a built in Expression functionality for this.
You could write your own using the Ternary Operatior
(test) ? true : false
but a limitation of this approach is that the expression editor is cumbersome for long expressions.([StartMonth]==1)?"January":([StartMonth]==2)? "February" : ([StartMonth]==3)? "March" : "Etc"
An alternative to this is to use a Script Task. In the Rows tab, check our
StartDate
column as a readonly input. In the Output, add a new Column, named StartMonthName as type String length 3 (if you only want the 3 letter abbreviation). And if you're already using a script task, you can eliminate the Derived Column call by adding theStartMonth
in from here.