Menu
Coddy logo textTech

Manejo de fechas, parte 3

Parte de la sección Fundamentos del Journey de SQL de Coddy. Lección 33 de 72.

SQL proporciona varias funciones útiles para manipular y dar formato a las fechas. Estas son algunas funciones de fecha comunes:

  1. DATE() - Convierte una cadena en una fecha
  2. STRFTIME() - Da formato a las fechas según los parámetros especificados
  3. DATE('now') - Obtiene la fecha actual:

Por ejemplo, convertir una cadena en una fecha:

SELECT DATE('2023-05-15 13:45:00')
-- Devuelve: 2023-05-15

SELECT DATE('now')
-- Devuelve la fecha actual

Por ejemplo, extraer el año, el mes y el día de una fecha:

-- Obtener año
SELECT STRFTIME('%Y', '2023-05-15')
-- Devuelve: 2023

-- Obtener mes
SELECT STRFTIME('%m', '2023-05-15')
-- Devuelve: 05

-- Obtener día
SELECT STRFTIME('%d', '2023-05-15')
-- Devuelve: 15

-- Mostrar combinación de año y día (se puede usar cualquier separador)
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- Devuelve: 2023:15

-- Usar un separador de guion en su lugar
SELECT STRFTIME('%d-%m-%Y', '2023-05-15')
-- Devuelve: 15-05-2023

-- Obtener día de la semana
SELECT STRFTIME('%w', '2023-05-15')
-- Devuelve: 1 (lunes; domingo es 0)

Especificadores de formato comunes:

  • %Y: Año (4 dígitos)
  • %m: Mes (01-12)
  • %d: Día del mes (01-31)
  • %w: Día de la semana (0-6, el domingo es 0)
  • %H: Hora (00-23)
  • %M: Minuto (00-59)
  • %S: Segundo (00-59)

Puedes usar cualquier carácter separador entre los especificadores (p. ej., -, :, /). Por ejemplo, STRFTIME('%d-%m-%Y', date) y STRFTIME('%d:%m:%Y', date) combinan el día, el mes y el año, solo que con separadores diferentes.

Puedes combinar estas funciones en las consultas:

-- Encuentra todos los registros del año actual
SELECT * FROM table1
WHERE STRFTIME('%Y', date_column) = STRFTIME('%Y', 'now')
challenge icon

Desafío

Fácil

Tablas y columnas disponibles:

  • events: id, start, end

Escribe una consulta que muestre:

  • El ID del evento
  • La fecha de inicio con el formato "DD-MM-YYYY". Llama a esta columna formatted_start
  • La fecha de finalización con el formato "DD-MM-YYYY". Llama a esta columna formatted_end
  • La duración en días entre el inicio y el final, redondeada al número entero más cercano. Llama a esta columna duration_days

Filtra únicamente las filas cuyo año de la columna start sea 2009 (STRFTIME() devuelve una cadena y no un número).

Ordena los resultados por la duración en días en orden descendente.

Recordatorio: Para calcular la diferencia entre fechas, usa: JULIANDAY(end) - JULIANDAY(start) y usa ROUND() para redondear a números enteros.

Pruébalo tú mismo

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Playground de SQL