comment convertir une variable de chaîne à la variable datetime de sql-server?

Je suis relativement nouveau à sql-server; j'essaie d'avoir une date de début et date de fin tiré à partir d'un formulaire-variable de la chaîne puis de le convertir en datetime (aaaa-mm-jj) format et je n'arrive pas à trouver quelque chose qui fonctionne. Tentative de code et l'erreur qui en résulte est ci-dessous. Tout conseil serait apprécié.

declare @startdate as varchar
declare @enddate as varchar
set @startdate=cast(@startdate as datetime)
set @enddate=cast(@enddate as datetime)

SELECT order_date, inv_no 
from invoices 
where order_date between @startdate and @enddate

L'erreur que je reçois est:

Conversion a échoué lors de la conversion de type datetime de chaîne de caractères.

Comment puis-je résoudre ce problème?

  • Vous devez spécifier une longueur de vos variables pour commencer à arrêter d'être tronquée à 1 caractère. Aussi yyyy-mm-dd ne fonctionne pas sur tous les paramètres régionaux pour datetime. yyyymmdd est plus robuste.
  • msdn.microsoft.com/en-us/library/ms187928.aspx
InformationsquelleAutor user1732206 | 2012-10-12