📘 Lección 12: Funciones de texto y fechas en SQL

Introducción

Hasta ahora aprendiste a:

  • Seleccionar, filtrar y ordenar datos.
  • Resumir información con funciones de agregación.
  • Agrupar resultados con GROUP BY y filtrarlos con HAVING.
  • Combinar tablas con JOIN.
  • Simplificar consultas con vistas (views).

👉 Pero en muchas ocasiones los datos no vienen “listos para usar”.

  • Quizás necesites transformar un nombre a mayúsculas o minúsculas.
  • Concatenar (unir) varias columnas en una sola.
  • Extraer el año, mes o día de una fecha.
  • Obtener la fecha y hora actuales.

✅ Para esto existen las funciones de texto y de fechas en SQL.

🔹 1. Funciones de texto más comunes

  • UPPER(campo) → convierte el texto a mayúsculas.
  • LOWER(campo) → convierte el texto a minúsculas.
  • CONCAT(campo1, campo2, …) → une cadenas de texto.
  • LENGTH(campo) → devuelve la cantidad de caracteres de un texto.
  • SUBSTRING(campo, inicio, cantidad) → extrae una parte del texto.

🔹 2. Ejemplos de funciones de texto

Ejemplo 1: convertir nombres a mayúsculas

SELECT nombre, UPPER(nombre) AS nombre_mayus
FROM alumnos;

📊 Resultado esperado:

nombrenombre_mayus
AnaANA
JuanJUAN
LauraLAURA
PedroPEDRO

Ejemplo 2: convertir nombres a minúsculas

SELECT nombre, LOWER(nombre) AS nombre_minus
FROM alumnos;

📊 Resultado esperado:

nombrenombre_minus
Anaana
Juanjuan
Lauralaura
Pedropedro

Ejemplo 3: concatenar nombre y ciudad

SELECT CONCAT(nombre, ' - ', ciudad) AS alumno_info
FROM alumnos;

📊 Resultado esperado:

alumno_info
Ana – Buenos Aires
Juan – Ciudad de México
Laura – Madrid
Pedro – Madrid

Ejemplo 4: longitud de un nombre

SELECT nombre, LENGTH(nombre) AS cantidad_letras
FROM alumnos;

📊 Resultado esperado:

nombrecantidad_letras
Ana3
Juan4
Laura5
Pedro5

Ejemplo 5: extraer parte de un texto

SELECT nombre, SUBSTRING(ciudad, 1, 5) AS ciudad_corta
FROM alumnos;

📊 Resultado esperado:

nombreciudad_corta
AnaBueno
JuanCiuda
LauraMadri
PedroMadri

🔹 3. Funciones de fechas más comunes

  • NOW() → devuelve la fecha y hora actuales.
  • CURDATE() → devuelve solo la fecha actual.
  • YEAR(fecha) → devuelve el año.
  • MONTH(fecha) → devuelve el mes.
  • DAY(fecha) → devuelve el día.
  • DATEDIFF(fecha1, fecha2) → diferencia en días entre dos fechas.

🔹 4. Ejemplos de funciones de fechas

Imaginemos una tabla profesores con sus fechas de contratación:

idnombrefecha_contratacion
1Marta2020-03-15
2Roberto2018-07-01
3Sofía2022-11-20

Crear la tabla profesores en DB-Fiddle

Antes de correr las consultas de ejemplos, copiá y pegá este código en la parte de Esquema SQL de DB-Fiddle para crear la tabla con sus datos:

CREATE TABLE profesores (
    id INT,
    nombre VARCHAR(50),
    fecha_contratacion DATE
);

INSERT INTO profesores (id, nombre, fecha_contratacion) VALUES
(1, 'Marta', '2020-03-15'),
(2, 'Roberto', '2018-07-01'),
(3, 'Sofía', '2022-11-20');

👉 Una vez creada, podés ejecutar las consultas de los ejemplos:

Ejemplo 1: mostrar el año de contratación

SELECT nombre, YEAR(fecha_contratacion) AS año
FROM profesores;

📊 Resultado esperado:

nombreaño
Marta2020
Roberto2018
Sofía2022

Ejemplo 2: mostrar mes y día de contratación

SELECT nombre, MONTH(fecha_contratacion) AS mes, DAY(fecha_contratacion) AS dia
FROM profesores;

📊 Resultado esperado:

nombremesdia
Marta315
Roberto71
Sofía1120

Ejemplo 3: calcular antigüedad en días

SELECT nombre, DATEDIFF(NOW(), fecha_contratacion) AS dias_antiguedad
FROM profesores;

👉 Esto calcula cuántos días pasaron desde la contratación hasta hoy.

🔹 5. Ejercicio práctico

  1. Muestra el nombre de los alumnos en mayúsculas.
  2. Muestra el nombre y la cantidad de letras de cada alumno.
  3. Crea una columna que muestre “Nombre – Ciudad” de cada alumno.
  4. De la tabla profesores, muestra únicamente el año de contratación.
  5. Calcula cuántos días lleva contratado Roberto.

🔹 Soluciones

SELECT UPPER(nombre) FROM alumnos;
SELECT nombre, LENGTH(nombre) FROM alumnos;
SELECT CONCAT(nombre, ' - ', ciudad) FROM alumnos;
SELECT nombre, YEAR(fecha_contratacion) FROM profesores;
SELECT DATEDIFF(NOW(), fecha_contratacion) FROM profesores WHERE nombre = 'Roberto';

📝 Mini Quiz

 

Resultados

#1. ¿Qué función convierte texto a mayúsculas en SQL?

#2. ¿Qué función devuelve el año de una fecha?

#3. Si quiero unir el nombre y la ciudad de un alumno, ¿qué función debo usar?

Previa
Finalizar

🔹 Resumen de la lección

  • Las funciones de texto permiten transformar cadenas: UPPER, LOWER, CONCAT, LENGTH, SUBSTRING.
  • Las funciones de fechas permiten trabajar con valores de tiempo: NOW, CURDATE, YEAR, MONTH, DAY, DATEDIFF.
  • Estas funciones hacen que los datos sean más legibles y útiles en reportes.

👉 En la próxima lección aprenderás a INSERTAR, ACTUALIZAR y ELIMINAR registros (INSERT, UPDATE, DELETE), es decir, cómo modificar los datos de tus tablas de manera segura.

📖 Avanza en tu formación consultando el resto de los temas en el Curso SQL online.

Scroll al inicio