2012-12-20 5 views
0

Dans ma procédure stockée, je suis en train de passer des paramètres avec ce codeErreur de conversion de date/heure dans SQL Server 2008?

select @enddate = CONVERT(varchar, @days) + '-' + left(@P5, 4) + '20' + right(@P5, 2) 

ici @enddate type de données est varchar(12) et @days type de données est int et @P5 type de données est varchar(20)

Il montre l'erreur ci-dessous

La conversion a échoué lors de la conversion de la date et/ou de l'heure de la chaîne de caractères

Toutes les idées sur ce sujet?

merci à l'avance

+2

pouvez-vous envoyer les valeurs de paramètres que vous utilisez? –

+0

rs, je passe @ p5 = 2012-12-12 @ jours pas besoin de passer parce que c'est la procédure dynamique – sentil

+0

pourquoi essayez-vous de retourner '20122012' en utilisant à gauche (@ P5,4) + '20' + droite (@ P5,2)? –

Répondre

0

En essayant de tester ce code, je ne l'ai pas réussi à déclencher la même erreur que vous voyez.

DECLARE @enddate AS VARCHAR(12) , 
    @days AS INT , 
    @P5 AS VARCHAR(20); 

SELECT @days = 5 , 
     @p5 = '2012-12-12'; 

SELECT @enddate = CONVERT(VARCHAR, @days) + '-' + LEFT(@P5, 4) + '20' + RIGHT(@P5, 2); 
PRINT @enddate; 

produit le résultat

5-20122012 

sans erreur.

Vous avez suggéré que cela fait partie d'une procédure stockée plus importante. Soit les données dans vos variables ne sont pas ce que vous croyez être ou l'erreur est ailleurs dans votre procédure.

Questions connexes