Il ne s'agit pas d'une facétie, mais d'un comportement attendu et normatif.
Le format normatif de conversion de STRING en DATETIME dans SQL Server repose sur la norme SQL qui imposait le format 'AAAAMMJJ hh:mm:ss.nnn'
Ceci jusqu'à la norme SQL1999.
Quelque soit les règles du serveur, ce format passe outre le paramétrage de langue.
A partir de SQL Server 2008, qui a rajouté les type DATE, DATETIME2 et DATETIMEOFSSET, le format normatif ayant évolué, SQL Server prends désormais 'AAAA-MM-JJ ...'
UNIQUEMENT pour les nouveaux types (afin de rester rétrocompatible).
Si vous aviez cherché un peu, vous seriez tombé sur l'article que nous avons écrit à ce sujet :
http://baptiste-wicht.developpez.com...-sql/datetime/
Effectivement le paramétrage SET FORMAT permet de prendre en compte des format exotique de conversion STRING DATE.
A +
Partager