Working in a culture which uses dd/mm/yyyy date formats can lead to some peculiar problems when using US-centric software. Past experience with this problem lead me to consistently express date values as yyyy-mm-dd for SQLServer. I was under the impression that this was a foolproof, culture-neutral technique and until now I have not had any problem with it. Today I encountered a peculiar problem with casting or converting date-strings when different language settings are applied. This is OK. SET LANGUAGE 'us_english' SELECT CAST('2010-7-13' AS DATETIME) Whereas these two fail with the message: *The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.* SET LANGUAGE 'British' SELECT CAST('2010-7-13' AS DATETIME) SET LANGUAGE 'Italian' SELECT CAST('2010-7-13' AS DATETIME) Even stranger is that this succeeds SET LANGUAGE 'British' SELECT CONVERT(DATETIME,'2010-7-13',101) But this fails SET LANGUAGE 'British' SELECT CONVERT(DATETIME,'2010-7-13') Can anyone explain what is going on here?