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 según parámetros especificadosDATE('now')- Obtiene la fecha actual:
Por ejemplo, convertir cadena a fecha:
SELECT DATE('2023-05-15 13:45:00')
-- Returns: 2023-05-15
SELECT DATE('now')
-- Returns current datePor ejemplo, extraer año, mes y día de la fecha:
-- Get year
SELECT STRFTIME('%Y', '2023-05-15')
-- Returns: 2023
-- Get month
SELECT STRFTIME('%m', '2023-05-15')
-- Returns: 05
-- Get day
SELECT STRFTIME('%d', '2023-05-15')
-- Returns: 15
-- Show combination of year and day (any separator can be used)
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- Returns: 2023:15
-- Use a dash separator instead
SELECT STRFTIME('%d-%m-%Y', '2023-05-15')
-- Returns: 15-05-2023
-- Get day of week
SELECT STRFTIME('%w', '2023-05-15')
-- Returns: 1 (Monday; Sunday is 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, domingo es 0)
- %H: Hora (00-23)
- %M: Minuto (00-59)
- %S: Segundo (00-59)
Puedes usar cualquier carácter separador entre especificadores (p. ej. -, :, /). Por ejemplo, STRFTIME('%d-%m-%Y', date) y STRFTIME('%d:%m:%Y', date) combinan día, mes y año — solo con separadores diferentes.
Puedes combinar estas funciones en consultas:
-- Find all records from current year
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 fin formateada como "DD-MM-YYYY". Llama a esta columna
formatted_end - La duración en días entre inicio y fin, redondeada al número entero más cercano. Llama a esta columna
duration_days
Filtra solo las filas donde 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.
Hoja de referencia
SQL proporciona varias funciones útiles para manipular y formatear fechas:
DATE()- Convierte una cadena a una fechaSTRFTIME()- Formatea fechas según parámetros especificadosDATE('now')- Obtiene la fecha actual
Convertir cadena a fecha:
SELECT DATE('2023-05-15 13:45:00')
-- Returns: 2023-05-15
SELECT DATE('now')
-- Returns current dateExtraer partes de la fecha usando STRFTIME():
-- Get year
SELECT STRFTIME('%Y', '2023-05-15')
-- Returns: 2023
-- Get month
SELECT STRFTIME('%m', '2023-05-15')
-- Returns: 05
-- Get day
SELECT STRFTIME('%d', '2023-05-15')
-- Returns: 15
-- Show combination of year and day
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- Returns: 2023:15Especificadores de formato comunes:
- %Y: Año (4 dígitos)
- %m: Mes (01-12)
- %d: Día del mes (01-31)
- %H: Hora (00-23)
- %M: Minuto (00-59)
- %S: Segundo (00-59)
Uso en cláusulas WHERE:
-- Find all records from current year
SELECT * FROM table1
WHERE STRFTIME('%Y', date_column) = STRFTIME('%Y', 'now')Calcular diferencias de fechas usando JULIANDAY():
JULIANDAY(end_date) - JULIANDAY(start_date)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