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 ?

Comment puis-je convertir avec succès les chaînes Varchar mmddyyyy en DateTime dans SQL Server 2008 ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-13 10:15:42448parcourir

How Can I Successfully Convert mmddyyyy Varchar Strings to DateTime in 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn