• Something that might not be clear is that only the date format is not changed until the end of the batch. What the DATENAME returns is directly affected.

    DECLARE @RunDate DATE = '10/02/17'
    SET LANGUAGE Italian
    SELECT DATENAME(dd, @RunDate)
    SELECT DATENAME(MONTH, @RunDate)
    SET LANGUAGE US_English
    SELECT DATENAME(dd, @RunDate)
    SELECT DATENAME(MONTH, @RunDate)

    For me that feels a bit inconsistent.