Problema:
A veces, al trabajar con Microsoft SQL Server, nos encontramos con números en diferentes formatos debido a diferencias culturales. Por ejemplo, en Francia usamos una coma para los decimales, mientras que en Estados Unidos usamos puntos decimales. ¿Cómo podemos trabajar y cambiar el formato de los números en SQL Server?
Solución:
En este tutorial, exploraremos varias funciones T-SQL de SQL Server que se pueden utilizar para formatear números. Proporcionaremos ejemplos prácticos para cada función.
Opciones de formateo de números en SQL
Echemos un vistazo a las siguientes funciones T-SQL de SQL Server y su uso:
- Usando CAST
- Usando CONVERT
- Usando ROUND
- Usando CEILING
- Usando FLOOR
- Usando FORMAT
Formateo de números en SQL utilizando la función CAST
La función CAST nos permite cambiar el formato de un número. Aquí hay algunos ejemplos:
SELECT CAST(5634.6334 as int) as number -- Salida: 5634 SELECT CAST(5634.6334 as numeric) as number -- Salida: 5635 SELECT CAST(5634.6334 as numeric(10,1)) as number -- Salida: 5634.6 SELECT CAST(5634.6334 as numeric(10,2)) as number -- Salida: 5634.63
Formateo de números en SQL utilizando la función CONVERT
La función CONVERT también se puede utilizar para cambiar el formato de un número. Aquí hay algunos ejemplos:
SELECT CONVERT( int, 5634.6334) as number -- Salida: 5634 SELECT CONVERT( numeric, 5634.6334) as number -- Salida: 5635 SELECT CONVERT( numeric(10,1), 5634.6334) as number -- Salida: 5634.6 SELECT CONVERT( numeric(10,2), 5634.6334) as number -- Salida: 5634.63
Formateo de números en SQL utilizando la función ROUND
La función ROUND es útil cuando queremos redondear un número a un número específico de decimales. Aquí hay algunos ejemplos:
SELECT ROUND(5634.6334,2) as number -- Salida: 5634.63 SELECT ROUND(5634.6334,3) as number -- Salida: 5634.633 SELECT ROUND(5634.6334,-1) as number -- Salida: 5630 SELECT ROUND(5634.6334,-2) as number -- Salida: 5600
Formateo de números en SQL utilizando las funciones FLOOR y CEILING
La función FLOOR devuelve el entero más grande menor o igual a un número, mientras que la función CEILING devuelve el entero más pequeño mayor o igual a un número. Aquí hay algunos ejemplos:
SELECT FLOOR(5634.6334) as number -- Salida: 5634 SELECT CEILING(5634.6334) as number -- Salida: 5635 SELECT FLOOR(-5634.6334) as number -- Salida: -5635 SELECT CEILING(-5634.6334) as number -- Salida: -5634
Formateo de números en SQL utilizando la función FORMAT
La función FORMAT proporciona varias opciones para formatear un número. Aquí hay algunos ejemplos:
SELECT FORMAT(5634.6334, 'N', 'en-us') AS 'Number' -- Salida: 5,634.63 SELECT FORMAT(5634.6334, 'N1', 'en-us') AS 'Number' -- Salida: 5,634.6 SELECT FORMAT(5634.6334, 'E', 'en-us') AS 'Number' -- Salida: 5.634633E+003 SELECT FORMAT(5634.6334, 'E2', 'en-us') AS 'Number' -- Salida: 5.63E+003 SELECT FORMAT(5634, 'D', 'en-us') AS 'Number' -- Salida: 5634 SELECT FORMAT(5634, 'D6', 'en-us') AS 'Currency Format' -- Salida: 005634 SELECT FORMAT(5634.6334, 'G', 'en-us') AS 'Number' -- Salida: 5634.6334 SELECT FORMAT(5634.6334, 'G6', 'en-us') AS 'Number' -- Salida: 5634.63 SELECT FORMAT(200.36, 'C', 'en-GB') AS 'Number' -- Salida: £5,634.63 SELECT FORMAT(5634.6334, 'C', 'zh-CN') AS 'Number' -- Salida: ¥5,634.63 SELECT FORMAT(0.5, 'P', 'en-us') AS 'number' -- Salida: 50.00% SELECT FORMAT(0.5, 'P4', 'en-us') AS 'number' -- Salida: 50.0000% SELECT FORMAT(56344, 'X', 'en-us') AS 'number' -- Salida: DC18 SELECT FORMAT(123456789,'+###-###-####') AS 'number' -- Salida: +123-45-6789 SELECT FORMAT(5634.6334, 'F', 'en-us') AS 'Number' -- Salida: 5634.63 SELECT FORMAT(5634.6334, 'F8', 'en-us') AS 'Number' -- Salida: 5634.63340000
Conclusión
En este tutorial, exploramos varias funciones T-SQL de SQL Server que se pueden utilizar para formatear números. Al utilizar funciones como CAST, CONVERT, ROUND, FLOOR, CEILING y FORMAT, podemos cambiar fácilmente el formato de los números según nuestras necesidades.
Última actualización del artículo: 2021-11-01