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