• My experience are just opposite. DATENAME is slower than CONVERT + DATEPART. See below:

    /*------------------------

    DECLARE @Bitbucket CHAR(4);

    PRINT '========== DATENAME Method of Conversion ==========';

    SET STATISTICS TIME ON;

    SELECT @Bitbucket = DATENAME(yy,SomeDate)

    FROM dbo.JBMTest

    SET STATISTICS TIME OFF;

    PRINT '========== Original Method of Conversion CONVERT ==========';

    SET STATISTICS TIME ON;

    SELECT @Bitbucket = CONVERT(CHAR(4), DATEPART(yy,SomeDate))

    FROM dbo.JBMTest;

    SET STATISTICS TIME OFF;

    PRINT '========== Original Method of Conversion CAST ==========';

    SET STATISTICS TIME ON;

    SELECT @Bitbucket = CAST(DATEPART(yy,SomeDate) AS CHAR(4))

    FROM dbo.JBMTest;

    SET STATISTICS TIME OFF;

    ------------------------*/

    ========== DATENAME Method of Conversion ==========

    SQL Server Execution Times:

    CPU time = 703 ms, elapsed time = 718 ms.

    ========== Original Method of Conversion CONVERT ==========

    SQL Server Execution Times:

    CPU time = 562 ms, elapsed time = 578 ms.

    ========== Original Method of Conversion CAST ==========

    SQL Server Execution Times:

    CPU time = 579 ms, elapsed time = 579 ms.