top of page

Cómo trabajar con fechas en SQL: Funciones de fecha y hora

¡Hola a todos! Hoy vamos a explorar cómo trabajar con fechas y horas en SQL, ya que estos datos son comunes en cualquier base de datos, ya sea para registrar cuándo se realizó una transacción, cuándo se creó un registro o cualquier otra información relacionada con el tiempo. Afortunadamente, SQL nos proporciona varias funciones que facilitan el manejo de estos datos. ¡Vamos a verlas!


Funciones de Fecha y Hora Comunes en SQL


1. GETDATE() – Obtener la fecha y hora actuales

Esta función devuelve la fecha y hora actuales del sistema en que se está ejecutando la consulta. Es útil cuando necesitas registrar la fecha actual en algún campo.

SELECT GETDATE(); -- Devuelve algo como '2024-09-27 10:30:45.123'

2. DATEADD() – Sumar o restar tiempo a una fecha

Con DATEADD() puedes sumar o restar unidades de tiempo (días, meses, años, horas, etc.) a una fecha determinada.

-- Añadir 7 días a la fecha actual 
SELECT DATEADD(DAY, 7, GETDATE()); -- Devuelve la fecha actual más 7 días -- Restar 1 año a la fecha actual 
SELECT DATEADD(YEAR, -1, GETDATE()); -- Devuelve la fecha actual menos 1 año

3. DATEDIFF() – Calcular la diferencia entre dos fechas

Esta función calcula la diferencia entre dos fechas en una unidad de tiempo específica (días, meses, años, etc.).

-- Calcular la diferencia en días entre dos fechas 
SELECT DATEDIFF(DAY, '2023-09-01', '2024-09-01'); -- Devuelve 366 días 
-- Diferencia en meses 
SELECT DATEDIFF(MONTH, '2023-01-01', GETDATE()); -- Devuelve el número de meses

4. FORMAT() – Dar formato a fechas

La función FORMAT() te permite personalizar el formato de una fecha.

-- Formatear la fecha como 'DD/MM/YYYY' 
SELECT FORMAT(GETDATE(), 'dd/MM/yyyy'); -- Devuelve algo como '27/09/2024' -- Formatear solo la hora 
SELECT FORMAT(GETDATE(), 'HH:mm:ss'); -- Devuelve algo como '10:30:45'

5. YEAR(), MONTH(), DAY() – Extraer partes de una fecha

Estas funciones te permiten extraer el año, mes o día de una fecha.

SELECT YEAR(GETDATE()); -- Devuelve el año actual 
SELECT MONTH(GETDATE()); -- Devuelve el mes actual
SELECT DAY(GETDATE()); -- Devuelve el día actual


6. SYSDATETIME() – Obtener fecha y hora con mayor precisión

Si necesitas una mayor precisión (hasta nanosegundos) para la fecha y hora actuales, puedes usar SYSDATETIME().

SELECT SYSDATETIME(); -- Devuelve algo como '2024-09-27 10:30:45.1234567'

Ejemplos Prácticos

  1. Obtener la fecha actual formateada:

SELECT FORMAT(GETDATE(), 'dd/MM/yyyy HH:mm:ss') AS fecha_formateada;
  1. Calcular cuántos días han pasado desde el 1 de enero de este año:

SELECT DATEDIFF(DAY, '2024-01-01', GETDATE()) AS dias_desde_enero;
  1. Sumar 6 meses a la fecha de hoy:

SELECT DATEADD(MONTH, 6, GETDATE()) AS fecha_futura;
  1. Obtener solo el mes y año actuales:

SELECT YEAR(GETDATE()) AS año_actual, MONTH(GETDATE()) AS mes_actual;

Resumen rápido:

  • GETDATE(): Devuelve la fecha y hora actuales.

  • DATEADD(): Suma o resta tiempo a una fecha.

  • DATEDIFF(): Calcula la diferencia entre dos fechas.

  • FORMAT(): Formatea una fecha según tus necesidades.

  • YEAR(), MONTH(), DAY(): Extrae el año, mes o día de una fecha.

  • SYSDATETIME(): Devuelve la fecha y hora actuales con más precisión.

El manejo adecuado de fechas y horas en SQL es clave para muchas aplicaciones y reportes. Ahora que conoces estas funciones, ¡puedes empezar a usarlas para trabajar con datos temporales de manera eficiente!


104 views

Comments


bottom of page