Have a look here
And try this
select * from sys.syslanguages
The language setting is very much involved in automatic formats. Especially Date-values and the calculation of weekdays can lead to differences.
The most problems you'll get with the conversion of date-literals (as you have encountered already).
I would NOT do this. I'd prefer to use proper formats. Read this
UPDATE
Look at these examples
SET LANGUAGE ENGLISH;
DECLARE @d1 DECIMAL(10,2)=100.50;
SELECT FORMAT(@d1,'C')
,@@DATEFIRST
,DATEPART(WEEK,{d'2016-04-03'})
,FORMAT({d'2016-04-03'},'D');
--$100.50 | 7 | 15 | Sunday, April 3, 2016
SET LANGUAGE GERMAN;
DECLARE @d2 DECIMAL(10,2)=100.50;
SELECT FORMAT(@d2,'C')
,@@DATEFIRST
,DATEPART(WEEK,{d'2016-04-03'})
,FORMAT({d'2016-04-03'},'D');
--100,50 € | 1 | 14 | Sonntag, 3. April 2016
- If you have reports depending on the week's number you would get different results.
- Any output could change...
- You might run into new exceptions when you have some code (interfaces!) where you deal with external data.
- Especially with the information given by Rahul Tripathi all this could even differ from user to user...
So once again: Don't