Conversion de mmddyyyy varchar en datetime dans SQL Server
Les utilisateurs de bases de données SQL Server rencontrent souvent le défi de convertir des chaînes varchar représentant des dates (au format mmddyyyy) en type de données datetime. Une conversion directe utilisant CONVERT
échoue fréquemment en raison de valeurs hors plage. Ce guide fournit une solution fiable.
Le processus implique ces étapes clés :
Préparation de la chaîne : Tout d'abord, déclarez une variable (par exemple, @Date
) de type char(8)
et attribuez-lui votre chaîne mmddyyyy. Cela garantit une longueur de chaîne constante.
Manipulation de chaînes : Utilisez les fonctions de chaîne (LEFT
, RIGHT
, SUBSTRING
) pour réorganiser les composants de chaîne dans un format yyyymmdd
, que SQL Server comprend facilement. Extrayez les parties de l'année, du mois et du jour individuellement et concaténez-les dans le bon ordre.
Conversion : Enfin, utilisez la fonction CONVERT
pour transformer la chaîne réarrangée en un type de données datetime
.
Exemple :
Le code SQL suivant illustre la conversion :
<code class="language-sql">DECLARE @Date char(8); SET @Date = '12312009'; SELECT CONVERT(datetime, RIGHT(@Date, 4) + LEFT(@Date, 2) + SUBSTRING(@Date, 3, 2));</code>
Cela affichera :
<code>----------------------- 2009-12-31 00:00:00.000 (1 row(s) affected)</code>
Cette méthode gère efficacement la conversion, permettant d'autres opérations liées aux dates au sein de votre base de données SQL Server. N'oubliez pas d'adapter la variable @Date
à votre chaîne de date varchar spécifique.
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!