La función Format aplica desde SQL Server 2012 en adelante. Retorna un valor con el formato previamente indicado. Se puede utilizar para definir el formato de una fecha y hora o para retornar un numero como varchar en un formato específico.
La forma de utilizarlo es: FORMAT(valor, formato, [cultura (opcional)])
El parámetro “valor” es el valor que quieres formatear, debe ser un dato compatible con la función. El formato es precisamente como queremos nuestro resultado (ej. “C”, “D”, “g”, “dd/MM/yyyy”), basicamente igual a como se utiliza la funcion Format en .Net. Cultura es un valor opcional, todavia no lo he utilizado pero es para obtener el resultado en nuestro propio idioma o lenguaje.
Cuales tipos de dato podemos envía en el campo valor?
bigint, int, smallint, tinyint, decimal, numeric, float, real, smallmoney, money, date, time, datetime, smalldatetime, datetime2, datetimeoffset.
Resultado con formato personalizado (ver tipos de cadenas con formato)
DECLARE @d DATETIME = GETDATE(); SELECT FORMAT(@d, 'dd/MM/yyyy') 'Custom DateTime', FORMAT(@d, 'dd/MM/yyyy hh:mm:ss tt') 'Custom DateTime 2', FORMAT(@d, 'dd/MM/yyyy HH:mm:ss') 'Custom 3 (24 horas)' SELECT FORMAT(123456789,'(###)-##-####') AS 'Teléfono', FORMAT(10,'##.00%') AS 'Porcentaje', FORMAT(100,'00000.00') AS 'Numerico 1', FORMAT(1000000.00,'##,###.00') AS 'Numerico Decimal'
Resultado con formato de fechas estándar
DECLARE @d DATETIME = GETDATE(); SELECT FORMAT ( @d, 'd', 'en-US' ) AS 'US English Result' ,FORMAT ( @d, 'd', 'en-gb' ) AS 'Great Britain English Result' ,FORMAT ( @d, 'd', 'de-de' ) AS 'German Result' ,FORMAT ( @d, 'd', 'zh-cn' ) AS 'Simplified Chinese (PRC) Result'; SELECT FORMAT ( @d, 'D', 'en-US' ) AS 'US English Result' ,FORMAT ( @d, 'D', 'en-gb' ) AS 'Great Britain English Result' ,FORMAT ( @d, 'D', 'de-de' ) AS 'German Result' ,FORMAT ( @d, 'D', 'zh-cn' ) AS 'Chinese (Simplified PRC) Result';
Resultado con formato numérico estándar (ver tipos de formato numérico)
SELECT FORMAT(1234567.89, 'N') as 'Número' ,FORMAT(1234567.89, 'G') as 'Normal' ,FORMAT(0.039, 'P') as 'Porcentaje' ,FORMAT(1234567.89, 'C','en-US') as 'Dinero US' ,FORMAT(1234567.89, 'C','en-gb') as 'Dinero GB' ,FORMAT(1234567.89, 'C','ja-JP') as 'Dinero Japón' ,FORMAT(1234567.89, 'C','fr-FR') as 'Dinero Francia'
Para ver mas ejemplos de formato que se pueden aplicar ver los siguientes enlaces.
Formato en SQL Server
Cadenas con formato numérico estándar
Cadenas con formato numérico personalizado
Hola estimado, me podrías ayudar con esta secuencia de sql, que no puedo agregarle los separadores de miles. el numero aparece de esta forma 123456789 y debería salir 123.456.789
SELECT CODIGO, CUENTAS, ROUND(DEBITO, “0”) AS DEBITO_, ROUND(CREDITO,0) AS CREDITO_, ROUND(DEUDOR,0) AS DEUDOR_, ROUND(ACREEDOR,0) AS ACREEDOR_, ROUND(ACTIVO,0) AS ACTIVO_, ROUND(PASIVO,0) AS PASIVO_, ROUND(PERDIDA,0) AS PERDIDA_, ROUND(GANANCIA,0) AS GANANCIA_
FROM BALANCE1
UNION
SELECT CODIGO, CUENTAS, ROUND(DEBITO, “0”) AS DEBITO_, ROUND(CREDITO,0) AS CREDITO_, ROUND(DEUDOR,0) AS DEUDOR_, ROUND(ACREEDOR,0) AS ACREEDOR_, ROUND(ACTIVO,0) AS ACTIVO_, ROUND(PASIVO,0) AS PASIVO_, ROUND(PERDIDA,0) AS PERDIDA_, ROUND(GANANCIA,0) AS GANANCIA_
FROM BALANCE2
Hola debes usar la funcion FORMAT
Para tu caso sería
FORMAT(NombreColumna, ‘N’)
FORMAT(NombreColumna,’##,###.00′)
Hola,
Necesito exportar estos valores desde una table pero no se como integrarle espacios antes del numero por ejemplo en el primer campo tengo “108080” que me cubre 6 posiciones pero trendia que completar 10. Usted sabe como podria hacer esto?
108080,MXP, 1.0000,37F4869C-633A-4EA0-9656-DFC780BFB5EC,14/03/2018
Hola, puedes usar Format, mira este ejemplo
select FORMAT(1, ‘0000’)