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:
DATE()- Convierte una cadena en una fechaSTRFTIME()- Da formato a las fechas según los parámetros especificadosDATE('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 actualPor 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')Desafío
FácilTablas 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
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Más palabras clave
La palabra clave INLa palabra clave BETWEENLa palabra clave LIKELa palabra clave ASRepaso: modelos de celulares2Condiciones
Conceptos básicos de las condicionesLa palabra clave ANDLa palabra clave ORLa palabra clave NOTCombinación de múltiples condicionesParéntesisBooleanos5Operaciones aritméticas
Operadores matemáticosColumnas matemáticasLa operación móduloLa función ROUND()3Formato de retorno específico
Valores nulosOrdenar resultados, parte 1Ordenar resultados, parte 2Repaso: empresa de ciberseguridadLimitar el número de registrosRepaso: fábrica de vehículos6Desafíos introductorios
Repaso - Elección parlamentariaRepaso - Detención policial de un criminalRepaso - Recipiente de bebida de barRepaso - Ingeniería de nuevas columnas9Múltiples tablas
Unión básica, parte 1Unión básica, parte 2Repaso: uniónAutouniónRepaso: autouniónUniónSimplificar consultas, palabra clave WITHRepaso: consultas WITHRepaso: contratista inmobiliario12Funciones de ventana, parte 2
Funciones RANK y DENSE_RANKRepaso: RANK y DENSE_RANKFunción NTILEFunciones de agregaciónCriterio ROWS y RANGEPractica por tu cuenta: Playground de SQL