Resumen Completo de Funciones SQL Server
1. Funciones Matemáticas
Función ¿Qué hace? ¿Cuándo utilizarlo? Sintaxis Explicación
Devuelve el valor absoluto de un Devuelve 10 .
ABS Para evitar valores negativos. ABS(-10)
número.
Para saber si un número es positivo o
SIGN Devuelve el signo de un número. SIGN(-5) Devuelve -1 .
negativo.
ROUND(3.456,
ROUND Redondea un número. Para limitar decimales. Devuelve 3.46 .
2)
SQUARE Eleva al cuadrado. Para obtener el cuadrado de un número. SQUARE(4) Devuelve 16 .
POWER Potencia. Para elevar a cualquier exponente. POWER(2, 3) Devuelve 8 .
SQRT Raíz cuadrada. Para operaciones matemáticas. SQRT(25) Devuelve 5 .
CEILING Redondea hacia arriba. Cuando necesitas el entero superior. CEILING(4.2) Devuelve 5 .
FLOOR Redondea hacia abajo. Cuando necesitas el entero inferior. FLOOR(4.8) Devuelve 4 .
LOG Logaritmo natural. Para cálculos logarítmicos. LOG(100) Devuelve 4.605... .
LOG10 Logaritmo base 10. Para transformar escalas. LOG10(1000) Devuelve 3 .
Devuelve
PI Devuelve el valor de pi. Para cálculos geométricos. PI()
3.141592... .
SIN Seno. Para trigonometría. SIN(PI()/2) Devuelve 1 .
COS Coseno. Para trigonometría. COS(0) Devuelve 1 .
TAN Tangente. Para trigonometría. TAN(1) Devuelve 1.557... .
DEGREES Radianes a grados. Para convertir unidades angulares. DEGREES(PI()) Devuelve 180 .
2. Funciones Lógicas
Función ¿Qué hace? ¿Cuándo utilizarlo? Sintaxis Explicación
Devuelve el valor según Cuando necesitas elegir de una Devuelve 'b' .
CHOOSE CHOOSE(2, 'a', 'b', 'c')
posición. lista.
COALESCE Primer valor no nulo. Para manejar valores NULL. COALESCE(NULL, NULL, 'X') Devuelve 'X' .
Para comparar múltiples Devuelve 5 .
GREATEST Devuelve el valor más alto. SELECT GREATEST(1, 5, 3)
columnas.
Para comparar múltiples Devuelve 1 .
LEAST Devuelve el valor más bajo. SELECT LEAST(1, 5, 3)
columnas.
IIF(edad >= 18, 'Adulto', Devuelve
IIF Condición simple. Para lógica condicional. 'Menor') 'Adulto' .
Devuelve NULL si los valores Para evitar errores como Devuelve NULL .
NULLIF NULLIF(10, 10)
coinciden. división por cero.
3. Funciones de Cadena
Page 1 of 5
Función ¿Qué hace? ¿Cuándo utilizarlo? Sintaxis Explicación
CHARINDEX Posición de substring. Para buscar texto. CHARINDEX('a', 'Maria') Devuelve 2 .
Para búsqueda con Devuelve 2 .
PATINDEX Posición con patrón. PATINDEX('%a%', 'Maria')
comodines.
CONCAT('Hola', ' ', Devuelve 'Hola
CONCAT Une textos. Para concatenar. 'Mundo') Mundo' .
Une textos con Cuando necesitas Devuelve 'a-b' .
CONCAT_WS CONCAT_WS('-', 'a', 'b')
separador. separadores.
Para formatos de números y Devuelve
FORMAT Formatea valores. FORMAT(1234.56, 'N2')
fechas. '1,234.56' .
Extrae desde la Devuelve 'Ho' .
LEFT Para cortar texto. LEFT('Hola', 2)
izquierda.
RIGHT Extrae desde la derecha. Para cortar texto. RIGHT('Hola', 2) Devuelve 'la' .
LEN Largo del texto. Para contar caracteres. LEN('SQL') Devuelve 3 .
LOWER A minúsculas. Para normalizar datos. LOWER('SQL') Devuelve 'sql' .
UPPER A mayúsculas. Para estandarizar. UPPER('sql') Devuelve 'SQL' .
Elimina espacios a la Devuelve 'hola' .
LTRIM Para limpiar datos. LTRIM(' hola')
izquierda.
Elimina espacios a la
RTRIM Para limpiar datos. RTRIM('hola ') Devuelve 'hola' .
derecha.
Elimina espacios a Devuelve 'hola' .
TRIM Para limpieza de datos. TRIM(' hola ')
ambos lados.
REPLACE('SQL 2019', '2019', Devuelve 'SQL
REPLACE Reemplaza texto. Para sustituir contenido. '2022') 2022' .
REPLICATE Repite texto. Para generar patrones. REPLICATE('A', 3) Devuelve 'AAA' .
REVERSE Invierte texto. Para transformaciones. REVERSE('SQL') Devuelve 'LQS' .
SPACE Devuelve espacios. Para rellenar columnas. SPACE(3) Devuelve ' '.
Para cortar un fragmento
SUBSTRING Extrae una subcadena. SUBSTRING('abcdef', 2, 3) Devuelve 'bcd' .
específico.
4. Funciones de Conversión
Función ¿Qué hace? ¿Cuándo utilizarlo? Sintaxis Explicación
Convierte entre tipos de Para hacer conversiones Devuelve 123 como
CAST CAST('123' AS INT)
datos. claras. entero.
Intenta convertir y devuelve Para evitar errores en
TRY_CAST TRY_CAST('abc' AS INT) Devuelve NULL .
NULL si falla. conversiones.
Igual que CAST, con estilo Para formatos de fecha CONVERT(VARCHAR, Devuelve la fecha en
CONVERT
opcional. específicos. GETDATE(), 103) dd/mm/yyyy .
Igual que CONVERT, pero Cuando no sabes si el
TRY_CONVERT TRY_CONVERT(INT, 'abc') Devuelve NULL .
seguro ante errores. valor es convertible.
Convierte texto a número o Para conversiones con PARSE('01/01/2020' AS Devuelve la fecha
PARSE DATE USING 'es-CL')
fecha con cultura. formato regional. 2020-01-01.
Para conversiones que
TRY_PARSE Versión segura de PARSE. TRY_PARSE('abc' AS DATE) Devuelve NULL .
pueden fallar.
Page 2 of 5
5. Funciones de Fecha y Hora
¿Cuándo
Función ¿Qué hace? Sintaxis Explicación
utilizarlo?
Fecha y hora
Para auditar SYSDATETIME() Incluye fracciones de
SYSDATETIME actuales con
procesos. segundo.
precisión alta.
Como
SYSDATETIME Para trabajar Devuelve fecha/hora +
SYSDATETIMEOFFSET SYSDATETIMEOFFSET()
pero con zona con offsets. zona.
horaria.
Fecha/hora actual Para sistemas
SYSUTCDATETIME SYSUTCDATETIME() Devuelve UTC actual.
en UTC. globales.
Para obtener la
Equivalente a CURRENT_TIMESTAMP Devuelve fecha y hora
CURRENT_TIMESTAMP fecha y hora del
GETDATE(). actuales.
sistema.
Fecha y hora Para timestamp Devuelve fecha/hora
GETDATE GETDATE()
actuales. de registros. actual.
Cuando
Fecha actual en trabajas con
GETUTCDATE GETUTCDATE() Devuelve fecha UTC.
UTC. horarios
internacionales.
Para obtener
Nombre de parte DATENAME(month, GETDATE()) Devuelve el nombre del
DATENAME 'Monday',
de la fecha. mes.
'January', etc.
Para extraer
Valor numérico de DATEPART(year, GETDATE()) Devuelve 2025 (por
DATEPART año, mes, día,
parte de la fecha. ejemplo).
etc.
Trunca la fecha a Para agrupar
DATETRUNC(month, GETDATE()) Devuelve el primer día
DATETRUNC unidad (desde SQL por mes, año,
del mes.
Server 2022). etc.
Para obtener
Extraen partes de YEAR(GETDATE())
DAY, MONTH, YEAR elementos Devuelve año actual.
la fecha.
simples.
Construye una Para generar TIMEFROMPARTS(14, 30, 0, 0,
Devuelve [Link] .
TIMEFROMPARTS 0)
hora. valores TIME.
Cuando
Construye una compones Devuelve 2023-07-
DATEFROMPARTS DATEFROMPARTS(2023, 7, 29)
fecha. manualmente 29 .
fechas.
Versión para Para precisión SMALLDATETIMEFROMPARTS(2023, Devuelve 2023-07-
SMALLDATETIMEFROMPARTS 7, 29, 10, 30)
SMALLDATETIME. limitada. 29 10:30 .
Para crear
Versión para DATETIMEFROMPARTS(2023, 7, Devuelve la fecha y
DATETIMEFROMPARTS fechas 29, 10, 30, 0, 0)
DATETIME. hora.
precisas.
Para tipo Para alta Similar a
DATETIME2FROMPARTS DATETIME2FROMPARTS(...)
DATETIME2. precisión. DATETIMEFROMPARTS.
Para tipo Para incluir Similar, pero con
DATETIMEOFFSETFROMPARTS DATETIMEOFFSETFROMPARTS(...)
DATETIMEOFFSET. zona horaria. OFFSET.
Para calcular
Diferencia entre DATEDIFF(day, '2023-01-01',
DATEDIFF días, meses, GETDATE()) Días desde esa fecha.
fechas.
etc.
Igual que Para
DATEDIFF, pero diferencias en
DATEDIFF_BIG DATEDIFF_BIG(...) Devuelve BIGINT.
para valores millones de
grandes. registros.
Page 3 of 5
¿Cuándo
Función ¿Qué hace? Sintaxis Explicación
utilizarlo?
Suma unidades de Para proyectar Devuelve fecha + 30
DATEADD DATEADD(day, 30, GETDATE())
tiempo. fechas. días.
Para
EOMONTH(GETDATE()) Devuelve último día del
EOMONTH Último día del mes. validaciones
mes actual.
mensuales.
Cambia el formato Cuando
SET DATEFORMAT dmy Cambia orden de
SET DATEFORMAT de entrada de cambias entre
día/mes/año.
fechas. dmy/mdy.
Para ver
Muestra idiomas EXEC sp_helplanguage Lista idiomas y
sp_helplanguage idiomas SQL
instalados. formatos de fecha.
Server.
Para ajustar
Cambia el idioma formato de Cambia lenguaje del
SET LANGUAGE SET LANGUAGE Spanish
de la sesión. fechas o contexto.
nombres.
Para verificar
Muestra el idioma SELECT @@LANGUAGE Devuelve el idioma en
@@LANGUAGE configuración
actual. uso.
de sesión.
6. Funciones del Sistema
Función ¿Qué hace? ¿Cuándo utilizarlo? Sintaxis Explicación
Para identificar el Retorna ID del host
HOST_ID Devuelve ID del host. SELECT HOST_ID()
sistema. conectado.
Devuelve nombre del Para auditar Retorna nombre del equipo
HOST_NAME SELECT HOST_NAME()
host. conexiones. cliente.
Reemplaza NULL con Para valores por ISNULL(campo, Devuelve el campo o 'N/A' si es
ISNULL 'N/A')
otro valor. defecto. NULL.
Línea donde ocurrió el En bloques Devuelve el número de línea
ERROR_LINE SELECT ERROR_LINE()
error. TRY...CATCH. del error.
SELECT
ERROR_MESSAGE Mensaje del error. Para depurar errores. ERROR_MESSAGE() Devuelve texto del error.
Para detectar tipo de SELECT
ERROR_NUMBER Código del error. ERROR_NUMBER() Devuelve el número del error.
error.
SELECT Devuelve nombre del
ERROR_PROCEDURE Procedimiento con error. Para errores en SPs. ERROR_PROCEDURE() procedimiento.
Para saber si es fatal SELECT
ERROR_SEVERITY Gravedad del error. ERROR_SEVERITY() Devuelve nivel de severidad.
o leve.
SELECT Devuelve código de estado del
ERROR_STATE Estado del error. Para diagnósticos. ERROR_STATE() error.
7. Funciones de Agregación
Función ¿Qué hace? ¿Cuándo utilizarlo? Sintaxis Explicación
Para encontrar el mayor SELECT MAX(precio) FROM Devuelve el precio más
MAX Valor máximo. ventas
valor. alto.
Para encontrar el menor SELECT MIN(precio) FROM Devuelve el precio más
MIN Valor mínimo. ventas
valor. bajo.
SELECT SUM(precio) FROM
SUM Suma total. Para obtener el total. ventas Suma todos los precios.
Page 4 of 5
Función ¿Qué hace? ¿Cuándo utilizarlo? Sintaxis Explicación
SELECT AVG(precio) FROM
AVG Promedio. Para obtener la media. ventas Calcula el promedio.
SELECT COUNT(*) FROM Devuelve número de
COUNT Cuenta filas. Para contar registros. ventas filas.
Igual que COUNT pero en SELECT COUNT_BIG(*) FROM Cuenta en valores
COUNT_BIG Para grandes volúmenes. tabla
BIGINT. grandes.
Para aplicar funciones Agrupa resultados por
GROUP BY Agrupa por columna. GROUP BY producto
agregadas. campo.
Para condiciones post- HAVING SUM(precio) > Filtra grupos con suma >
HAVING Filtra sobre agregaciones. 1000
agregación. 1000.
8. Funciones de Ventana / Clasificación
Función ¿Qué hace? ¿Cuándo utilizarlo? Sintaxis Explicación
Define partición/orden de Para funciones sin SUM(valor)
OVER OVER(PARTITION BY grupo) Suma sin agrupar.
función ventana. colapsar filas.
Para numerar por ROW_NUMBER() OVER(ORDER
ROW_NUMBER Número secuencial. BY fecha) Asigna número por orden.
grupo.
Para orden con RANK() OVER(ORDER BY Empates comparten rango
RANK Ranking con saltos. nota DESC)
empates. y dejan hueco.
Para orden continuo DENSE_RANK() OVER(ORDER Igual que RANK pero sin
DENSE_RANK Ranking sin saltos. BY nota DESC)
con empates. saltos.
Divide resultados en N Para percentiles o NTILE(4) OVER(ORDER BY Divide en 4 grupos según
NTILE total)
grupos. cuartiles. orden.
Page 5 of 5