Modelado físico avanzado relacional de bases de datos
Las funciones de fecha y hora en SQL permiten manipular y obtener información de valores de tipo DATE, DATETIME o TIMESTAMP. A continuación, veremos las funciones más utilizadas en SQLite, PostgreSQL y MySQL.
1. CURRENT_DATE, CURRENT_TIME y CURRENT_TIMESTAMP - Fecha y Hora Actual
Estas funciones devuelven la fecha y hora actual del sistema.
Ejemplo:
1SELECT CURRENT_DATE; 2SELECT CURRENT_TIME; 3SELECT CURRENT_TIMESTAMP; 4-- o simplemente: 5SELECT NOW(); -- equivalente a CURRENT_TIMESTAMP
2. EXTRACT() - Extraer Componentes de una Fecha
Permite obtener partes específicas de una fecha como año, mes, día, hora, etc.
Ejemplo:
1SELECT YEAR('2024-02-19'); 2SELECT MONTH('2024-02-19'); 3SELECT DAY('2024-02-19');
3. DATE_ADD() y DATE_SUB() - Sumar o Restar Tiempo
Ejemplo:
1SELECT DATE_ADD('2024-02-19', INTERVAL 7 DAY); 2SELECT DATE_SUB('2024-02-19', INTERVAL 3 MONTH);
4. DATEDIFF() - Diferencia entre Fechas
Devuelve el número de días entre dos fechas.
Ejemplo:
1SELECT DATEDIFF('2024-03-01', '2024-02-19'); -- Resultado: 11
5. FORMAT() - Formateo de Fechas (Solo en MySQL)
Permite personalizar el formato de una fecha.
Ejemplo:
1SELECT DATE_FORMAT('2024-02-19', '%d/%m/%Y'); -- Resultado: '19/02/2024'
6. DAYNAME() y MONTHNAME() - Nombre del Día y Mes (Solo en MySQL y PostgreSQL)
Devuelve el nombre del día o mes de una fecha.
Ejemplo:
1SELECT DAYNAME('2024-02-19'); -- 'Monday' 2SELECT MONTHNAME('2024-02-19'); -- 'February'
7. TIME() - Extraer Hora de una Fecha y Hora
Se usa para obtener solo la parte horaria de un DATETIME o TIMESTAMP.
Ejemplo:
1SELECT TIME('2024-02-19 14:30:00'); -- Resultado: '14:30:00'
8. TIMESTAMPDIFF() - Diferencia entre Fechas en Distintas Unidades (Solo en MySQL)
Devuelve la diferencia entre dos fechas en días, meses o años.
Ejemplo:
1SELECT TIMESTAMPDIFF(DAY, '2024-02-01', '2024-02-19'); -- Resultado: 18 2SELECT TIMESTAMPDIFF(YEAR, '2000-01-01', '2024-02-19'); -- Resultado: 24