Funciones SQL

SQL incluye bastantes funciones para manipular diferentes tipos de datos. Puedes consultar más de los que aquí vemos en diferentes fuentes:

Todas las funciones mostradas aquí se pueden aplicar a cualquier columna de una tabla siempre que tenga el tipo de datos adecuado, por ejemplo:

SELECT CONCAT('Hola', ' ', nombre) AS Saludo, 
       YEAR(nacimiento)
FROM empleado;

Funciones de Cadenas de Texto

Estas funciones permiten manipular y analizar texto (cadenas) dentro de MySQL. Son útiles para formatear, buscar y modificar datos de texto.

  • CONCAT: Une dos o más cadenas en una sola.

SELECT CONCAT('Hola', ' ', 'Mundo'); -- Resultado: 'Hola Mundo'
  • LENGTH: Devuelve la longitud de una cadena en bytes.

SELECT LENGTH('Hola'); -- Resultado: 4
  • LOWER / UPPER: Convierte una cadena a minúsculas o mayúsculas, respectivamente.

SELECT LOWER('Hola'); -- Resultado: 'hola'
  • SUBSTRING: Extrae una parte específica de una cadena.

SELECT SUBSTRING('Hola Mundo', 1, 4); -- Resultado: 'Hola'
  • REPLACE: Sustituye todas las ocurrencias de una subcadena por otra.

SELECT REPLACE('Hola Mundo', 'Mundo', 'Amigo'); -- Resultado: 'Hola Amigo'

Funciones Numéricas

Estas funciones realizan operaciones matemáticas sobre datos numéricos. Son útiles para cálculos y transformación de valores numéricos.

  • ABS: Devuelve el valor absoluto de un número.

SELECT ABS(-5); -- Resultado: 5
  • CEIL y FLOOR: Redondean un número al entero superior (CEIL) o inferior (FLOOR) más cercano.

SELECT CEIL(2.3); -- Resultado: 3
SELECT FLOOR(2.7); -- Resultado: 2
  • ROUND: Redondea un número a un número específico de decimales.

SELECT ROUND(5.678, 2); -- Resultado: 5.68
  • MOD: Devuelve el residuo de una división entre dos números.

SELECT MOD(10, 3); -- Resultado: 1
  • RAND: Genera un número aleatorio entre 0 y 1.

SELECT RAND(); -- Resultado: 0.1543 (valor aleatorio)

Funciones de Fecha y Hora

Estas funciones ayudan a trabajar con fechas y horas. Son esenciales para comparar, calcular intervalos y formatear fechas.

  • NOW: Devuelve la fecha y hora actual.

SELECT NOW(); -- Resultado: '2024-11-08 13:20:15' (ejemplo)
  • CURDATE y CURTIME: Devuelven la fecha actual (CURDATE) o la hora actual (CURTIME).

SELECT CURDATE(); -- Resultado: '2024-11-08'
SELECT CURTIME(); -- Resultado: '13:20:15'
  • DATE_ADD y DATE_SUB: Añaden o restan intervalos de tiempo a una fecha.

SELECT DATE_ADD('2024-11-08', INTERVAL 7 DAY); -- Resultado: '2024-11-15'
SELECT DATE_SUB('2024-11-08', INTERVAL 7 DAY); -- Resultado: '2024-11-01'
  • YEAR, MONTH, DAY: Extraen el año, mes o día de una fecha.

SELECT YEAR('2024-11-08'); -- Resultado: 2024
SELECT MONTH('2024-11-08'); -- Resultado: 1
SELECT DAY('2024-11-08'); -- Resultado: 8
  • DATEDIFF: Calcula la diferencia en días entre dos fechas.

SELECT DATEDIFF('2024-11-10', '2024-11-08'); -- Resultado: 2

Last updated