Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

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

Vous devrez diviser votre ORDER BY en plusieurs CASE déclarations :

ORDER BY 
    CASE WHEN @orderby = 0 THEN news_edits.[time] END DESC,
    CASE WHEN @orderby = 1 THEN news_edits.lastedit END DESC,
    CASE WHEN @orderby = 2 THEN news_edits.title END DESC

C'est parce qu'un seul CASE requiert que toutes les branches aient des types de données compatibles. Puisque votre chaîne de caractères dans un CASE ne peut pas être converti à la date et à l'heure renvoyée par un autre CASE , vous obtenez l'erreur de conversion.