FORMAT
y para qué se usa?
FORMAT
es una función de formato que permite transformar valores de tipo numérico, fecha y hora en cadenas de texto con un formato específico. Esta función usa la sintaxis de formato de .NET, lo que proporciona una amplia variedad de opciones para personalizar la salida según los requisitos de presentación. FORMAT
es especialmente útil para generar reportes, mostrar datos en aplicaciones y trabajar con diferentes convenciones regionales o culturales.
Se utiliza en escenarios como:
dd-MM-yyyy
).
FORMAT
FORMAT ( value, format [, culture ] )
value
: El valor que se desea formatear (puede ser numérico, de fecha o de hora).
format
: Una cadena de formato que define cómo se presentará el valor (N2
, yyyy-MM-dd
, C
, etc.).
culture
: (Opcional) El nombre de la cultura que se utilizará para el formato (por ejemplo, en-US
para inglés de EE. UU., es-ES
para español de España). Si no se especifica, se utiliza la configuración regional predeterminada del servidor.
FORMAT
SELECT FORMAT(1234567.89, 'N2') AS FormatoNumero;
Resultado:
FormatoNumero
--------------
1,234,567.89
En este ejemplo, N2
indica que el número debe tener separadores de miles y 2 decimales (,
para separar miles y .
para decimales, según la configuración predeterminada).
SELECT FORMAT(1500, 'C', 'es-ES') AS FormatoMoneda;
Resultado:
FormatoMoneda
--------------
1.500,00 €
Aquí, C
es el formato de moneda, y es-ES
indica el uso de la cultura española, que presenta la moneda en euros y usa .
como separador de miles y ,
como separador decimal.
SELECT FORMAT(GETDATE(), 'dd-MM-yyyy') AS FechaFormateada;
Resultado:
FechaFormateada
----------------
27-09-2024
dd-MM-yyyy
especifica que la fecha debe mostrarse con el día (dd
), mes (MM
) y año (yyyy
), separados por guiones (-
).
SELECT FORMAT(GETDATE(), 'D', 'fr-FR') AS FechaFrancia,
FORMAT(GETDATE(), 'D', 'en-US') AS FechaEEUU;
Resultado:
FechaFrancia | FechaEEUU
------------------------------|---------------------------
27 septembre 2024 | Saturday, September 27, 2024
La salida de la fecha depende del culture
especificado. fr-FR
usa el formato de fecha en francés, y en-US
usa el formato estándar de Estados Unidos.
SELECT FORMAT(GETDATE(), 'hh:mm tt') AS Hora12Horas,
FORMAT(GETDATE(), 'HH:mm') AS Hora24Horas;
Resultado:
Hora12Horas | Hora24Horas
------------|------------
02:30 PM | 14:30
hh:mm tt
: Muestra la hora en formato de 12 horas (hh
) con indicador AM/PM (tt
).
HH:mm
: Muestra la hora en formato de 24 horas (HH
).
SELECT FORMAT(0.875, 'P2') AS Porcentaje;
Resultado:
Porcentaje
-----------
87.50 %
P2
convierte el número a porcentaje con 2 decimales, mostrando 0.875
como 87.50 %
.
FORMAT
devuelve siempre una cadena de texto, lo que puede afectar el rendimiento en consultas que se ejecutan con frecuencia.
FORMAT
es compatible a partir de SQL Server 2012, por lo que no está disponible en versiones anteriores.
Para más información sobre FORMAT
, consulta la documentación oficial de Microsoft.
Jorge García
Fullstack developer