204 votos

T-SQL emitidos frente a convertir

¿Cuál es la orientación general sobre cuándo debe usar CAST contra CONVERT ? ¿Hay problemas de rendimiento relacionados con elegir uno contra el otro? ¿Es uno más cercano a ANSI-SQL?

226voto

Matthew Farwell Puntos 31257

CONVERT es específica de SQL Server, CAST ANSI.

CONVERT es más flexible en que puedes formato de fechas, etc. Aparte de eso, son más o menos lo mismo. Si no se preocupan acerca de las características extendidas, uso CAST.

EDICIÓN:

Como se señaló por @beruic y @C-F en los comentarios de abajo, no es posible pérdida de precisión cuando una conversión implícita se usa (que es una de las que uso, ni REPARTO, ni CONVERTIR). Para más información, vea CAST y CONVERT y, en particular, en este gráfico: Tipo de Datos SQL Server Tabla de Conversión. Con esta información adicional, la original consejo sigue siendo el mismo. El uso de FUNDICIÓN donde sea posible.

24voto

jason saldo Puntos 5036

Convertir tiene un parámetro de estilo para las conversiones de cadena fecha.

http://msdn.Microsoft.com/en-us/library/ms187928.aspx

17voto

Brian Puntos 3889

Reparto es ansi, convertir no es.

1voto

CAST es el estándar SQL, pero CONVERTIR no es (sólo para el dialecto de T-SQL), tenemos una pequeña ventaja para convertir en el caso datetime

con el molde, debe indicar el la expresión y el tipo de destino; con CONVERTIR, hay un tercer argumento que representa el estilo para la conversión, que es apoyada por algunas conversiones, como entre las de carácter las cadenas de valores de fecha y hora. Por ejemplo, CONVERTIR(FECHA, el '1/2/2012', 101) convierte el literal de cadena de caracteres hasta la FECHA utilizando el estilo de 101 representa el estándar de Estados unidos.

saludos,

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X