Articles

SqlHints.com

Posted on

FORMAT es una de las nuevas funciones de cadena incorporadas introducidas como parte de Sql Server 2012. Devuelve el valor formateado en el formato especificado utilizando el valor del parámetro de cultura opcional. No es una función nativa de Sql Server sino que es una función dependiente de .NET CLR.

SYNTAX: FORMAT ( valor, format )

Parámetro Descripción
Valor: Valor a formatear
formato: Este parámetro especifica el formato en el que se formateará el vlaue.
Este parámetro es opcional, especifica la cultura en la que se formatea el valor. Si no se especifica se utiliza el idioma de la sesión actual.

RETURNS: El tipo de valor de retorno es nvarchar.

Ejemplo 1: FORMAT DATE con Culture

DECLARE @date DATETIME = GETDATE() SELECT @date AS 'GETDATE()', FORMAT( @date, 'd', 'en-US') AS 'DATE IN US Culture', FORMAT( @date, 'd', 'en-IN') AS 'DATE IN INDIAN Culture', FORMAT( @date, 'd', 'de-DE') AS 'DATE IN GERMAN Culture'

Resultado:

FORMAT_FUNCTION_IN_SQL_SERVER_2012_1

Ejemplo 2: FORMAT CURRENCY con Culture

DECLARE @Price INT = 40SELECT FORMAT(@Price,'c','en-US') AS 'CURRENCY IN US Culture', FORMAT(@Price,'c','de-DE') AS 'CURRENCY IN GERMAN Culture'

Resultado:

FORMAT_FUNCTION_IN_SQL_SERVER_2012_2

Ejemplo 3: FORMAT CURRENCY

DECLARE @Price DECIMAL(5,3) = 40.356SELECT FORMAT( @Price, 'C') AS 'Default', FORMAT( @Price, 'C0') AS 'With 0 Decimal', FORMAT( @Price, 'C1') AS 'With 1 Decimal', FORMAT( @Price, 'C2') AS 'With 2 Decimal', FORMAT( @Price, 'C3') AS 'With 3 Decimal'

Resultado:
FORMAT_FUNCTION_IN_SQL_SERVER_2012_3

Ejemplo 4: FORMAT PERCENTAGE

DECLARE @Percentage float = 0.35674SELECT FORMAT( @Percentage, 'P') AS '% Default', FORMAT( @Percentage, 'P0') AS '% With 0 Decimal', FORMAT( @Percentage, 'P1') AS '% with 1 Decimal', FORMAT( @Percentage, 'P2') AS '% with 2 Decimal', FORMAT( @Percentage, 'P3') AS '% with 3 Decimal'

Resultado:
FORMAT_FUNCTION_IN_SQL_SERVER_2012_4

Ejemplo 5: FORMAT NUMBER

DECLARE @Number AS DECIMAL(10,2) = 454545.389SELECT FORMAT( @Number, 'N','en-US') AS 'Number Format in US', FORMAT( @Number, 'N','en-IN') AS 'Number Format in INDIA'SELECT FORMAT( @Number, '#.0') AS 'With 1 Decimal', FORMAT( @Number, '#.00') AS 'With 2 Decimal', FORMAT( @Number, '#,##.00') AS 'With Comma and 2 Decimal', FORMAT( @Number, '##.00') AS 'Without Comma and 2 Decimal'

Resultado:
FORMAT_FUNCTION_IN_SQL_SERVER_2012_5

Ejemplo 6: FORMATOS DE FECHA PERSONALIZADOS

DECLARE @date DATETIME = GETDATE() SELECT @date AS 'GETDATE()', FORMAT ( @date, 'dd/MM/yyyy') AS 'dd/MM/yyyy', FORMAT ( @date, 'MM/dd/yyyy') AS 'MM/dd/yyyy', FORMAT ( @date, 'yyyy/MM/dd') AS 'yyyy/MM/dd' SELECT FORMAT( @date,'dddd, MMMM dd, yyyy hh:mm:ss tt','en-US') AS 'US', FORMAT( @date,'dddd, MMMM dd, yyyy hh:mm:ss tt','hi-IN') AS 'Hindi', FORMAT( @date,'dddd, MMMM dd, yyyy hh:mm:ss tt','kn-IN') AS 'Kannada'

Resultado:

FORMAT_FUNCTION_IN_SQL_SERVER_2012_6

DECLARE @date DATETIME = GETDATE()SELECT FORMAT ( @date, 'dd', 'en-US' ) AS 'US',FORMAT ( @date, 'ddd', 'en-US' ) AS 'US',FORMAT ( @date, 'dddd', 'en-US' ) AS 'US',FORMAT ( @date, 'dddd', 'kn-IN' ) AS 'Kannada',FORMAT ( @date, 'dddd', 'hi-IN' ) AS 'Hindi'SELECT FORMAT ( @date, 'M', 'en-US' ) AS 'US',FORMAT ( @date, 'MM', 'en-US' ) AS 'US',FORMAT ( @date, 'MMM', 'en-US' ) AS 'US',FORMAT ( @date, 'MMMM', 'en-US' ) AS 'US',FORMAT ( @date, 'MMMM', 'kn-IN' ) AS 'Kannada',FORMAT ( @date, 'MMMM', 'hi-IN' ) AS 'Hindi'SELECT FORMAT ( @date, 'y', 'en-US' ) AS 'US', FORMAT ( @date, 'y', 'kn-IN' ) AS 'Kannada', FORMAT ( @date, 'y', 'hi-IN' ) AS 'Hindi', FORMAT ( @date, 'yy', 'en-US' ) AS 'US', FORMAT ( @date, 'yyy', 'en-US' ) AS 'US'

Resultado:

FORMAT_FUNCTION_IN_SQL_SERVER_2012_7

Ejemplo 7: Cultura no válida

DECLARE @date DATETIME = GETDATE()SELECT FORMAT(@date,'d','Test') AS 'Invalid Culture'

Resultado:
Msg 9818, Nivel 16, Estado 1, Línea 2
El parámetro de cultura ‘Test’ proporcionado en la llamada a la función no es compatible.

Puede que le guste leer la siguiente nueva función incorporada introducida en Sql Server 2012:

Nuevas funciones incorporadas introducidas en Sql Server
Funciones de conversión
PARSE TRY_PARSE
TRY_CONVERT
STRING FUNCTIONS
CONCAT FORMAT
FUNCIONES LÓGICAS
ELEGIR IIF
FUNCIONES DE FECHA Y HORA
EOMONIO
DATEFROMPARTS DATETIMEFROMPARTS
SMALLDATETIMEFROMPARTS DATETIME2FROMPARTS
TIMEFROMPARTS DATETIMEOFFSETFROMPARTS

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *