Maison >base de données >tutoriel mysql >Comment éviter les erreurs hors plage lors de la conversion de VARCHAR en DATETIME dans SQL Server ?

Comment éviter les erreurs hors plage lors de la conversion de VARCHAR en DATETIME dans SQL Server ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-13 06:34:43623parcourir

How to Avoid Out-of-Range Errors When Converting VARCHAR to DATETIME in SQL Server?

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 :

  1. Une variable VARCHAR (@Date) contient la chaîne de date d'entrée.
  2. RIGHT(@Date, 4) extrait l'année (les quatre derniers caractères).
  3. LEFT(@Date, 2) extrait le mois (deux premiers caractères).
  4. SUBSTRING(@Date, 3, 2) extrait le jour (caractères 3 et 4).
  5. L'année, le mois et le jour sont concaténés au format yyyymmdd.
  6. 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!

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