• shouldn't your function return a datetime instead of a char(8)?

    anyway, you just wrap it with the function you wrote:

    here's two ways, depending on if you change the function to return a datetime, or still a char:

    ...

    ,CASE

    WHEN ISDATE([dbo].[fixDate](SUBSTRING(BulkColumn, 6, 8))) = 1

    THEN CONVERT(datetime,[dbo].[fixDate](SUBSTRING(BulkColumn, 31, 8))) ELSE NULL

    END AS yob

    ...

    --or

    --returns a datetime?

    ...

    [dbo].[fixDate](SUBSTRING(BulkColumn, 31, 8)) AS yob

    ...

    Lowell


    --help us help you! If you post a question, make sure you include a CREATE TABLE... statement and INSERT INTO... statement into that table to give the volunteers here representative data. with your description of the problem, we can provide a tested, verifiable solution to your question! asking the question the right way gets you a tested answer the fastest way possible!