357 votes

T-SQL Cast contre Convert

Quelles sont les indications générales sur le moment où vous devez utiliser CAST contre CONVERT ? Y a-t-il des problèmes de performance liés au choix de l'un ou de l'autre ? L'un est-il plus proche d'ANSI-SQL ?

11voto

Atario Points 470

La lisibilité est un point que personne ne semble avoir encore relevé. Ayant

CONVERT(SomeType,
    SomeReallyLongExpression
    + ThatMayEvenSpan
    + MultipleLines
    )

peut être plus facile à comprendre que

CAST(SomeReallyLongExpression
    + ThatMayEvenSpan
    + MultipleLines
    AS SomeType
    )

6voto

RakeshP Points 131

CAST utilise la norme ANSI. En cas de portabilité, cela fonctionnera sur d'autres plateformes. CONVERT est spécifique à sql server. Mais c'est une fonction très puissante. Vous pouvez spécifier différents styles pour les dates

3voto

klenium Points 1198

Vous ne devez pas non plus utiliser CAST pour obtenir le texte d'un algorithme de hachage. CAST(HASHBYTES('...') AS VARCHAR(32)) n'est pas la même chose que CONVERT(VARCHAR(32), HASHBYTES('...'), 2) . Sans le dernier paramètre, le résultat serait le même, mais pas un texte lisible. Pour autant que je sache, vous ne pouvez pas spécifier ce dernier paramètre dans la commande CAST .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X