Fechas
Las distintas bases de datos relacionales proporcionan funciones para trabajar con fechas y tiempos. Algunas de las funciones más comunes incluyen
Ahora (NOW)
Devuelve la fecha y la hora actuales
SELECT NOW();SELECT NOW(); Hoy
Devuelve la fecha y la hora actuales
SELECT NOW(); -- Devuelve la fecha y la hora actuales
SELECT CURDATE(); -- Devuelve la fecha actual
SELECT CURTIME(); -- Devuelve la hora actualSELECT CURRENT_TIMESTAMP; -- Devuelve la fecha y la hora actuales
SELECT CURRENT_DATE; -- Devuelve la fecha actual
SELECT CURRENT_TIME; -- Devuelve la hora actualOperaciones con fechas
MySQL permite realizar operaciones aritméticas con fechas. Puedes adelantar o retrasar segundos, minutos, días, meses o años a una fecha utilizando la función correspondiente.
Retrasar una fecha
Es posible modificar una fecha retrasándola un intervalo de tiempo. Un intervalo de tiempo se define con un número entero y una unidad de tiempo (año, mes, día, hora, minuto o segundo)
-- Retrasa 1 día a cada payment_date
SELECT DATE_ADD(payment_date, INTERVAL 1 DAY)
FROM payment; -- Retrasa 1 día a cada payment_date
SELECT payment_date + INTERVAL '1 day'
FROM payment;Adelantar una fecha
Es posible modificar una fecha adelantándola un intervalo de tiempo. Un intervalo de tiempo se define con un número entero y una unidad de tiempo (año, mes, día, hora, minuto o segundo)
-- Adelanta 1 día a cada payment_date
SELECT DATE_SUB(payment_date, INTERVAL 1 DAY)
FROM payment; -- Adelanta 1 día a cada payment_date
SELECT payment_date - INTERVAL '1 day'
FROM payment;Formateo de fechas
Puedes formatear fechas y horas según tus necesidades.
SELECT DATE_FORMAT(payment_date, '%Y-%m-%d %H:%i:%s')
FROM payment;SELECT to_char(payment_date, 'yyyy-mm-dd') as formatted_date
FROM payment;Extraer partes de una fecha
Puedes extraer partes específicas de una fecha, como año, mes, día, hora, minuto, segundo, etc., utilizando funciones.
SELECT
YEAR(payment_date) as payment_year,
MONTH(payment_date) as payment_month,
MONTHNAME(payment_date) AS payment_month_name,
DAY(payment_date) as payment_day,
WEEKDAY(payment_date) as payment_day_of_week,
DAYNAME(payment_date) as payment_day_name_of_week
FROM payment;SELECT
date_part('year', payment_date) as payment_year,
date_part('month', payment_date) as payment_month,
to_char(payment_date, 'month') as payment_month_name,
date_part('day', payment_date) as payment_day,
date_part('dow', payment_date) as payment_day_of_week,
to_char(payment_date, 'day') as payment_day_of_week_name
FROM payment;Last updated