Se devi utilizzare un formato di data basato su stringhe, dovresti sceglierne uno sicuro e funziona in ogni istanza di SQL Server, indipendentemente dal formato della data, dalla lingua e dalle impostazioni internazionali.
Tale formato è noto come ISO-8601 formato ed è uno dei due
YYYYMMDD (note: **NO** dashes!)
o
YYYY-MM-DDTHH:MM:SSS
per un DATETIME
colonna.
Quindi invece di
Convert(datetime, '28/11/2012', 103)
dovresti usare
CAST('20121128' AS DATETIME)
e poi dovresti stare bene.
Se utilizzi SQL Server 2008 - potresti anche esaminare l'utilizzo di DATE
(invece di DATETIME
) per i casi in cui è necessaria solo la data (nessuna parte dell'ora). Sarebbe ancora più facile che usare DATETIME
e con la porzione di tempo sempre 00:00:00