Convert en SQL Server

Función Convert en SQL




La función CONVERT nos permite convertir una expresión o valor de un tipo de dato especifico a otro.

La Sintaxis función CONVERT
CONVERT(Tipo_Dato(Longitud),Expresion, Estilo)


Argumento de la función CONVERT

CONVERT:  es la función que no va permitir realizar la conversión del tipo de dato.

Tipo_Dato: especificamos el tipo de dato al cual vamos a realizar la conversión. Los tipos de datos a los cuales podemos convertir son:

  • Numéricos: bigint, int smallint, tinyint
  • Binarios: bit
  • Numéricos fijos: decimal, money, smallmoney
  • Numéricos flotantes: float, real
  • Cadena caracteres: char, varchar, text, nchar, nvarchar, ntext, binary, varbinary
Longitud: la longitud determina el tamaño del tipo de dato al que vamos a convertir. Podemos ejemplificar cómo un tamaño el tipo de dato varchar con longitud 100.

Expresión: la expresión indica ya sea una operación a realizar o la columna especifica de una tabla en la cual queremos realizar la conversión.

Estilo: el estilo es una expresión entera que nos va especificar como la función Convert va interpretar la conversión de la expresión, es decir si realizamos la conversión entre fechas el estilos nos va especificar el formato para conversión entre fechas.

Para tipos de datos de fechas, el estilo pueden tener alguno de los valores mostrados en la siguiente tabla.

Sin Siglo(aa) Con siglo(aaa) Entrada/Salida Estandar
0 100 lun dd aaaa hh:miAM (o PM) Predeterminado para datetime y smalldatetime
1 101 1 = dd/mm/aa 101 = dd/mm/aaaa US
2 102 2 = aa.mm.dd 102 = aaaa.mm.dd ANSI
3 103 3 = dd/mm/yy 103 = dd/mm/yyyy Britanico/Frances
4 104 4 = dd.mm.aa 104 = dd.mm.aaaa Aleman
1 101 5 = dd-mm-aa 105 = dd-mm-aaaa Italiano
6 106 6 = dd lun aa 106 = dd lun aaaa -
7 107 7 = Lun dd, aa 107 = Lun dd, aaaa -
8 108 hh:mi:ss -
9 109 lun dd aaaa hh:mi:ss:mmmAM (o PM) Predeterminado + milisegundos
10 110 10 = dd-mm-aaaa 110 = dd-mm-aaaa EE.UU
11 108 11 = aa/mm/dd 111 = aaaa/mm/dd Japon
12 112 12 = aammdd 112 = aaaammdd ISO
13 113 dd lun aaaa hh:mi:ss:mmm (24h) Valor predeterminado de Europa + milisegundos
14 114 hh:mi:ss:mmm (24h) -
- 120 aaaa-mm-dd hh:mi:ss (24h) Valor predeterminado canónico de ODBC (con milisegundos) para hora, fecha, fechahora2 y fechahoradesplazamiento
22 - mm/dd/yy hh:mi:ss AM (or PM) U.S
- 23 yyyy-mm-dd ISO8601
- 126 aaaa-mm-ddThh:mi:ss.mmm (sin espacios) ISO8601
- 127 aaaa-MM-ddThh:mm:ss.fffZ (sin espacios) ISO8601 con zona horaria Z.
- 130 dd mon aaaa hh:mi:ss:mmmAM Hijiri
- 131 dd/mm/aaaa hh:mi:ss:mmmAM Hijiri

También podemos mencionar estilo para los tipos de datos float y real los cuales veremos en la siguiente tabla.

Valor Salida
0 Un máximo de 6 dígitos. Utilizar en notación científica, cuando corresponda.
1 Siempre 8 dígitos. Utilizar siempre en notación científica.
2 Siempre 16 dígitos. Utilizar siempre en notación científica.
3 Siempre 17 dígitos. Utilizar para la conversión sin pérdidas. Con este estilo, se garantiza que cada valor flotante o real distinto se convierta en una cadena de caracteres distinta.
126, 128 Incluido por motivos heredados; una versión futura podría desaprobar estos valores.

Estilo para los tipos de datos money y smallmoney:

Valor Salida
0 Sin comas tres dígitos a lado izquierdo del punto decimal y dos dígitos hacia la derecha del punto decimal Ejemplo: 4856,98.
1 Comas tres dígitos a la izquierda del punto decimal y dos dígitos hacia la derecha del punto decimal Ejemplo: 8.520,92.
2 Sin comas cada tres dígitos a la izquierda del punto decimal y cuatro dígitos a la derecha del punto decimal Ejemplo: 15236.8979.

Vista toda la información sobre el uso de Convert, ahora vamos a crear una serie de ejemplos.


Ejemplos de Convert en SQL Server

Para el primer ejemplo vamos a convertir la expresión 755.23 de tipo numérica a cadena. La Sintaxis para eso será la siguiente.

SELECT CONVERT(VARCHAR,755.23)AS CADENA

Ejecutemos el siguiente ejemplo en SQL Server Management Studio:


Ahora como segundo ejemplo vamos a convertir una fecha a una cadena de carácter.
SELECT CONVERT(VARCHAR,'14/05/2022')AS CADENA 

Ejecutemos el codigo creado para ver el resultado.


Ahora vamos hacer un poco más profundo el uso de Convert en SQL Server. Para ellos vamos a consultar los registros de la siguiente tabla.


De la siguiente tabla vamos a convertir la fecha a un formato de fecha más corto ya que no queremos que nos aparezca la información de horas, minutos y segundos. La consulta que vamos a crear es la siguiente.

select CONVERT(date,FechaMerma)as Fecha, MotivoMerma, 
NumeroLote,CantidadMermada
from EqMermasEmpaque

Ejecutemos la consulta para ver el resultado:


Veamos otro ejemplo esta vez vamos a crear una consulta que nos una dos tablas la cual nos muestre los números de  lotes como cantidades numérica, de igual formas la fecha en formato corto y por último, vamos a mostrar únicamente los registros de productos cuya cantidades en mermas sean mayor a 10. Veamos la consulta a crear.

SELECT SP.Nombre, CONVERT(date,EM.FechaMerma)AS FECHA,
CONVERT(int,EM.NumeroLote) AS LOTE,EM.CantidadMermada
FROM EqMermasEmpaque AS EM 
INNER JOIN SivProductos AS SP ON EM.objProductoID = SP.ProductoID
WHERE EM.CantidadMermada >=10
ORDER BY SP.Nombre

Podrían interesarte los siguientes temas(Sentencia Inner Join en SQL, Sentencia Where en SQL, Order by para ordenar registros en SQL )

Ejecutemos la consulta en SQL Server Management Studio:


Como podemos observar hemos obtenido la fecha en formato mas corto y los numero de lotes los hemos convertido al tipo de dato numérico.

En este articulo hemos aprendido como convertir tipos de datos usando la función Convert de SQL Server.


Publicar un comentario

0 Comentarios