• patrick.palmer (3/25/2013)


    I have a query that has two date fields that are Int....20050307. I need to convert them to date fields. 03/07/2005 I can not seem to get them to convert. Can anyone out there offer me some assistance please. The fields are fact.StartDtID and fact.EndDtId. See query below and Thank you in advance.

    SELECT

    dimUser.EmpFullName1 [User Name],

    dimUser.MgrEmpFullName1 AS Manager,

    dimUser.PrimaryJobName AS [Primary Job],

    dimUser.EmpNo AS [User Number],

    CONVERT(VARCHAR(10), fact.StartDtID, 101) [Start Date],

    CONVERT(VARCHAR(10),fact.EndDtID, 101) [Completion Date],

    dimUser.PrimaryOrgCode,

    dimUser.SecondaryOrg1 AS [Secondary Org 1],

    dimUser.SecondaryOrg2 AS [Secondary Org 2],

    dimUser.PrimaryOrgName AS Org,

    fact.EndDtID,

    dimUser.EmpStat AS [Emp Status],

    CASE WHEN fact.completionStatusID = '-1'

    THEN 'Not Satisfied'

    ELSE 'Satisfied' END AS Status

    FROM factAttempt AS fact

    INNER JOIN dimActivity AS A ON A.ID = fact.ActivityID

    INNER JOIN dimUser ON dimUser.ID = fact.UserID

    INNER JOIN dimDate AS DD ON DD.DateID = fact.EndDtID

    WHERE (dimUser.EmpStat = 'active')

    AND (a.code = 'A2102')

    AND (fact.StartDtID >= '20130101')

    -- SQL Server 2008 answer:

    declare @MyDate int = 20050307;

    select cast(cast(@MyDate as varchar(8)) as date);