Lorsque vous tapez date t il forme de « xxxxxx », il semble que SQLServer assumess est un format ISO YYMMDD et en tant que tel ne soit pas affecté par le SET DATEFORMAT
Je connaissais 2 ces formats - ce qu'on appelle les formats sûrs
- ISO: AAAAMMJJ
- ISO8601: aaaa-mm-jjThh: mi: SS.mmm
mais il semble que yYMMDD est également ISO - vérifier BOL Styles Date et Heure - Format 12
Cela expliquerait pourquoi la solution affichée par Scorpio n'a pas fonctionné
Vous pouvez utiliser la solution fournie par butter chicken avec la spécification de format (12) sur un côté sûr:
declare @dt varchar(6)
select @dt = '010109'
select convert(datetime,RIGHT(@dt,2) + SUBSTRING(@dt,3,2) + LEFT(@dt,2),12)
Si possible, je serait idéal si vous pouviez changer la colonne datetime évite des surprises similaires à l'avenir
"SQL Server format DATETIME * incorrrect *" Oh l'ironie ... – voyager