GETDATE() returns a datetime value. When you execute SELECT GETDATE() , the application gets the datetime value and figure out how to display it. The application you use wisely chooses the ISO format.
When you execute LEFT(GETDATE() , the database must perform an implicit conversion from datetime to some string value. To do this, it uses its internationalization settings. What you see is based on these settings.
The moral of the story: Avoid implicit conversions. Always indicate what you are doing, especially in SQL, which has fairly weak diagnostic capabilities. So, use CONVERT() with the appropriate format for what you want to do.
Gordon linoff
source share