Aaron Bertrand has an intro-level post on using dates and times in SQL Server:
I urge you to always use
yyyymmdd
(without the dashes) for a date without time – it will never fail, regardless of regional, language, or dateformat settings, and across any of the date/time data types. (And absolutely do not store it as a string data type in SQL Server – always store it as a proper date or time data type.)
This was a big one for me because I tend to use yyyy-mm-dd.