Maison >base de données >tutoriel mysql >Comment puis-je convertir avec succès les chaînes Varchar mmddyyyy en DateTime dans SQL Server 2008 ?
Moyen efficace de convertir la chaîne varchar mmddyyyy en datetime dans SQL Server 2008
Dans SQL Server 2008, la conversion d'une chaîne au format mmddyyyy représentant une date en un type de données datetime peut rencontrer une erreur de conversion. Voici comment résoudre ce problème :
Analyser et convertir des chaînes
La conversion utilisant directement la fonction CONVERT peut échouer avec une erreur hors plage. Vous devez plutôt analyser manuellement la chaîne en ses composants (mois, jour, année), puis construire la valeur datetime :
<code class="language-sql">DECLARE @Date char(8) SET @Date = '12312009' SELECT CONVERT(datetime, RIGHT(@Date, 4) + SUBSTRING(@Date, 3, 2) + LEFT(@Date, 2))</code>
Exemple : Convertir '12312009' en DateTime
En utilisant la méthode ci-dessus, la chaîne « 12312009 » peut être convertie en une valeur datetime comme suit :
<code class="language-sql">SELECT CONVERT(datetime, RIGHT('12312009', 4) + SUBSTRING('12312009', 3, 2) + LEFT('12312009', 2))</code>
Résultats de sortie
Le résultat de la requête ci-dessus sera :
<code>----------------------- 2009-12-31 00:00:00.000 (1 row(s) affected)</code>
Veuillez noter qu'afin de garantir l'exactitude de la conversion, l'ordre de traitement des chaînes a été ajusté dans le code, en plaçant l'année au début, le mois au milieu et la date à la fin, ce qui est différente de la méthode de traitement par défaut de la fonction CONVERT.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!