date problem

  • i have a date coming in like this

    21/03/2018

    I keep getting an error. do I have to convert it I tried the following code to try and convert it but it doesn't work

    ISNULL([Column 6]) || (DT_WSTR,12)YEAR([Column 6]) == "1901" ? NULL(DT_WSTR,38) : (DT_WSTR,12)DAY([Column 6]) + "/" + (DT_WSTR,12)MONTH([Column 6]) + "/" + (DT_WSTR,12)YEAR([Column 6])

    any ideas what the best way to get the date into my table

  • ronan.healy (9/29/2014)


    i have a date coming in like this

    21/03/2018

    I keep getting an error. do I have to convert it I tried the following code to try and convert it but it doesn't work

    ISNULL([Column 6]) || (DT_WSTR,12)YEAR([Column 6]) == "1901" ? NULL(DT_WSTR,38) : (DT_WSTR,12)DAY([Column 6]) + "/" + (DT_WSTR,12)MONTH([Column 6]) + "/" + (DT_WSTR,12)YEAR([Column 6])

    any ideas what the best way to get the date into my table

    Try putting it into YYYYMMDD format (still text, using a derived column) and inserting that.


  • What is the error?

    To what data type are you converting?

    What is the locale used in the package?

    Need an answer? No, you need a question
    My blog at https://sqlkover.com.
    MCSE Business Intelligence - Microsoft Data Platform MVP

  • Phil Parkin (9/29/2014)


    ronan.healy (9/29/2014)


    i have a date coming in like this

    21/03/2018

    I keep getting an error. do I have to convert it I tried the following code to try and convert it but it doesn't work

    ISNULL([Column 6]) || (DT_WSTR,12)YEAR([Column 6]) == "1901" ? NULL(DT_WSTR,38) : (DT_WSTR,12)DAY([Column 6]) + "/" + (DT_WSTR,12)MONTH([Column 6]) + "/" + (DT_WSTR,12)YEAR([Column 6])

    any ideas what the best way to get the date into my table

    Try putting it into YYYYMMDD format (still text, using a derived column) and inserting that.

    does this code not change it to yyyymmdd

    ISNULL([Column 6]) || (DT_WSTR,12)YEAR([Column 6]) == "1901" ? NULL(DT_WSTR,38) : (DT_WSTR,12)DAY([Column 6]) + "/" + (DT_WSTR,12)MONTH([Column 6]) + "/" + (DT_WSTR,12)YEAR([Column 6])

  • ronan.healy (9/29/2014)


    Phil Parkin (9/29/2014)


    ronan.healy (9/29/2014)


    i have a date coming in like this

    21/03/2018

    I keep getting an error. do I have to convert it I tried the following code to try and convert it but it doesn't work

    ISNULL([Column 6]) || (DT_WSTR,12)YEAR([Column 6]) == "1901" ? NULL(DT_WSTR,38) : (DT_WSTR,12)DAY([Column 6]) + "/" + (DT_WSTR,12)MONTH([Column 6]) + "/" + (DT_WSTR,12)YEAR([Column 6])

    any ideas what the best way to get the date into my table

    Try putting it into YYYYMMDD format (still text, using a derived column) and inserting that.

    does this code not change it to yyyymmdd

    ISNULL([Column 6]) || (DT_WSTR,12)YEAR([Column 6]) == "1901" ? NULL(DT_WSTR,38) : (DT_WSTR,12)DAY([Column 6]) + "/" + (DT_WSTR,12)MONTH([Column 6]) + "/" + (DT_WSTR,12)YEAR([Column 6])

    No, this is dd/mm/yyyy.

    Need an answer? No, you need a question
    My blog at https://sqlkover.com.
    MCSE Business Intelligence - Microsoft Data Platform MVP

  • when I use that code even if I switch it around I get the following error

    TITLE: Microsoft Visual Studio

    ------------------------------

    Error at PortVal InboundLoad [Derived Column 3 [1969]]: The function "YEAR" does not support the data type "DT_WSTR" for parameter number 1. The type of the parameter could not be implicitly cast into a compatible type for the function. To perform this operation, the operand needs to be explicitly cast with a cast operator.

    Error at PortVal InboundLoad [Derived Column 3 [1969]]: Evaluating function "YEAR" failed with error code 0xC0047089.

    Error at PortVal InboundLoad [Derived Column 3 [1969]]: The function "YEAR" does not support the data type "DT_WSTR" for parameter number 1. The type of the parameter could not be implicitly cast into a compatible type for the function. To perform this operation, the operand needs to be explicitly cast with a cast operator.

    Error at PortVal InboundLoad [Derived Column 3 [1969]]: Computing the expression "ISNULL([Column 6]) || (DT_WSTR,12)YEAR([Column 6]) == "1901" ? NULL(DT_WSTR,38) : (DT_WSTR,12)YEAR([Column 6]) + "/" + (DT_WSTR,12)MONTH([Column 6]) + "/" + (DT_WSTR,12)DAY([Column 6])" failed with error code 0xC00470C5. The expression may have errors, such as divide by zero, that cannot be detected at parse time, or there may be an out-of-memory error.

    Error at PortVal InboundLoad [Derived Column 3 [1969]]: The expression "ISNULL([Column 6]) || (DT_WSTR,12)YEAR([Column 6]) == "1901" ? NULL(DT_WSTR,38) : (DT_WSTR,12)YEAR([Column 6]) + "/" + (DT_WSTR,12)MONTH([Column 6]) + "/" + (DT_WSTR,12)DAY([Column 6])" on "output column "MDate" (2057)" is not valid.

    Error at PortVal InboundLoad [Derived Column 3 [1969]]: Failed to set property "Expression" on "output column "MDate" (2057)".

    ------------------------------

    ADDITIONAL INFORMATION:

    Exception from HRESULT: 0xC0204006 (Microsoft.SqlServer.DTSPipelineWrap)

    ------------------------------

    BUTTONS:

    OK

    ------------------------------

  • The YEAR function (and MONTH and DAY) only work on date data types, not on strings.

    You'll get these errors when your input column is a string data type.

    Need an answer? No, you need a question
    My blog at https://sqlkover.com.
    MCSE Business Intelligence - Microsoft Data Platform MVP

  • If your input data is in a string, you cannot use date functions on it.

    Use substring to extract the parts of the string you are interested in and do not use YEAR, MONTH etc at all.


  • Koen Verbeeck (9/29/2014)


    The YEAR function (and MONTH and DAY) only work on date data types, not on strings.

    You'll get these errors when your input column is a string data type.

    They don't call you Speedy Verbeeck for nothing 😀


  • Phil Parkin (9/29/2014)


    Koen Verbeeck (9/29/2014)


    The YEAR function (and MONTH and DAY) only work on date data types, not on strings.

    You'll get these errors when your input column is a string data type.

    They don't call you Speedy Verbeeck for nothing 😀

    True true 😉 😎

    Need an answer? No, you need a question
    My blog at https://sqlkover.com.
    MCSE Business Intelligence - Microsoft Data Platform MVP

Viewing 10 posts - 1 through 10 (of 10 total)

You must be logged in to reply to this topic. Login to reply