My source file is showing column 10 as string. My destination table is datetime. I am using the derived transformation with a conditional statement. How do I convert the value from string to date. Everywhere I try the (DT_DATE) I get an error.
[Column 10] == "01/01/0001" ? " 01/01/1801" : [Column 10] <= "12/31/1801" ? "12/31/1801" : [Column 10]
What's the error?|||I modified it to the following but I get an error when I try to debug.
[Column 10] == "01/01/0001" ? (dt_date)" 01/01/1801" : [Column 10] <= "12/31/1801" ? (dt_date)"12/31/1801" : (dt_date)[Column 10]
Error message is:
...conversion between types dt_str and db_timestamp is not supported
|||What is the output column data type specified as in the derived column?|||Where do I check that? I only see the input defined in the derived column transformation which is dt_string 50. The column is defined as datetime in the table.|||http://ssistalk.blogspot.com/2007/01/derived-column.htmlI would expect to see the data type of the derived column be DT_DBTIMESTAMP (or DT_DBDATE). The expression should be:
[column10] == "xxxxxx" ? "01/01/1801" : ......
Make sure "Derived Column" is set to "add as new column".|||I don't want to add it as a new column. I am using the conditional statement instead of the SQL case statement. I have dates from Oracle that are outside SQL's range that I need to convert.|||Right, but you can't replace the column because it's a DT_STR.... So if you want a date data type, you need to have a new column. This is the proper way to do it. Then in the data flow, you just ignore [column10] and use [DateColumn10], for instance.|||I tried that but now I get the same error for my new column10.|||
RMooreFL wrote:
I tried that but now I get the same error for my new column10.
Okay, I've posted a new example.
http://ssistalk.blogspot.com/2007/01/derived-column.html
No comments:
Post a Comment