• J Livingston SQL - Tuesday, May 23, 2017 8:37 AM

    Eirikur Eiriksson - Tuesday, May 23, 2017 8:27 AM

    J Livingston SQL - Tuesday, May 23, 2017 5:30 AM

    DECLARE @d FLOAT= 201601;
    SELECT CONVERT( DATE, CONVERT(VARCHAR(8), CONVERT(INT, @d * 100 + 1)));

    Careful here, add the format parameter to the convert, otherwise it might fail
    😎

    would this be better Eirikur?
    DECLARE @d FLOAT= 201613;
    SELECT TRY_CONVERT( DATE, CONVERT(VARCHAR(8), CONVERT(INT, @d * 100 + 1)));

    Skipping the character conversion and convert straight to datetime is safer, when I change the collation/locale then your query either errors or returns NULL
    😎

    DECLARE @d FLOAT= CONVERT(FLOAT,GETDATE(),0);
    SELECT CONVERT( DATE, CONVERT(VARCHAR(20), CONVERT(DATETIME, @d,12),12),12);