Published on

June 14, 2020

Formateo de números en SQL Server

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

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.