Función Convert en SQL
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
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.
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.
0 Comentarios