Handling Dates Part 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 formatear fechas. Aquí hay algunas funciones de fecha comunes:
DATE()- Convierte una cadena a una fechaSTRFTIME()- Formatea fechas de acuerdo con los parámetros especificadosDATE('now')- Obtiene la fecha actual:
Por ejemplo, convertir una cadena a 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 el año
SELECT STRFTIME('%Y', '2023-05-15')
-- Devuelve: 2023
-- Obtener el mes
SELECT STRFTIME('%m', '2023-05-15')
-- Devuelve: 05
-- Obtener el 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 guion como separador en su lugar
SELECT STRFTIME('%d-%m-%Y', '2023-05-15')
-- Devuelve: 15-05-2023
-- Obtener el día de la semana
SELECT STRFTIME('%w', '2023-05-15')
-- Devuelve: 1 (lunes; el 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 (por ejemplo, -, :, /). 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 diferentes separadores.
Puedes combinar estas funciones en las consultas:
-- Buscar 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:
<strong>events</strong>:<strong>id</strong>,<strong>start</strong>,<strong>end</strong>
Escribe una consulta que muestre:
- El ID del evento
- La fecha de inicio formateada como "DD-MM-YYYY". Llama a esta columna
formatted_start - La fecha de finalización formateada como "DD-MM-YYYY". Llama a esta columna
formatted_end - La duración en días entre el inicio y el fin, redondeada al número entero más cercano. Llama a esta columna
duration_days
Filtra solo las filas en las que el año de la columna start sea '2009' (STRFTIME() devuelve una cadena y no un número).
Ordena los resultados por los días de duración 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
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns