Si vous devez utiliser un format de date basé sur une chaîne, vous devez en choisir un qui est sûr et fonctionne dans chaque instance SQL Server, quels que soient le format de date, la langue et les paramètres régionaux.
Ce format est appelé ISO-8601 format et c'est soit
YYYYMMDD (note: **NO** dashes!)
ou
YYYY-MM-DDTHH:MM:SSS
pour un DATETIME
colonne.
Donc au lieu de
Convert(datetime, '28/11/2012', 103)
vous devriez utiliser
CAST('20121128' AS DATETIME)
et puis ça devrait aller.
Si vous êtes sur SQL Server 2008 - vous pouvez également envisager d'utiliser DATE
(au lieu de DATETIME
) pour les cas où vous n'avez besoin que de la date (pas d'heure). Ce serait encore plus simple que d'utiliser DATETIME
et que la partie heure soit toujours 00:00:00