Conversion de SQL Server VARCHAR vers DATETIME : prévention des erreurs hors plage
La conversion de chaînes VARCHAR représentant des dates (comme « mmddyyyy ») en type DATETIME de SQL Server 2008 entraîne souvent des erreurs de « valeur hors plage » lors de l'utilisation directe de CONVERT
. En effet, le format d'entrée ne correspond pas au format DATETIME attendu.
La solution consiste à restructurer la chaîne VARCHAR au format yyyymmdd
avant la conversion. Voici comment :
<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>
Ce code effectue ces étapes :
@Date
) contient la chaîne de date d'entrée.RIGHT(@Date, 4)
extrait l'année (les quatre derniers caractères).LEFT(@Date, 2)
extrait le mois (deux premiers caractères).SUBSTRING(@Date, 3, 2)
extrait le jour (caractères 3 et 4).yyyymmdd
.CONVERT()
transforme enfin la chaîne correctement formatée en une valeur DATETIME.Cette méthode évite efficacement les erreurs hors plage, garantissant ainsi une conversion réussie.
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!