-- Funciones de fecha -- Podemos seleccionar el momento actual, la fecha actual y la hora actual select now() ahora, curdate() fecha,curtime() hora; -- Una vez tenemos una fecha podemos obtener todo tipo de información de la misma select year(now()),month(now()),day(now()),hour(now()),minute(now()),second(now()); select dayofyear(now()) dia_anyo,dayofweek(now()) dia_semana,weekday(now()) dia_semana0,dayname(now()) nombre,last_day(now()) dia_ultimo,microsecond(now()) microsegundos,week(now()) semana; -- Que alquileres se han hecho en martes select title, rental_date from film join inventory using(film_id) join rental using(inventory_id) where weekday(rental_date)=1; select dayname(rental_date) dia, count(rental_date) from film join inventory using(film_id) join rental using(inventory_id) group by dia; -- Con extract e intervalos select extract(microsecond from now()) m,extract(second from now()) s, extract(minute from now()) mi,extract(hour from now()) h, extract(day from now()) d,extract(week from now()) w, extract(month from now()) mo,extract(quarter from now()) q, extract(year from now()) y,extract(HOUR_MICROSECOND from now()) sm; -- Formatear fechas SELECT DATE_FORMAT(NOW(), '%d/%m/%Y %H:%i:%s') AS fecha_formateada; -- Sumar o restar días SELECT ADDDATE(NOW(), 7) AS fecha_en_7_dias, SUBDATE(NOW(), 3) AS fecha_hace_3_dias; -- Sumar o restar cualquier intervalo SELECT DATE_ADD(now(),INTERVAL 1 DAY); SELECT DATE_ADD('2018-05-01',INTERVAL -1 YEAR); SELECT DATE_SUB('2018-05-01',INTERVAL -1 DAY); SELECT DATE_SUB('2018-05-01',INTERVAL 1 YEAR); -- pedidos para la próxima semana -- where dia_pedido between now() and adddate(now(),7) -- Restar fechas -- En días SELECT DATEDIFF(NOW(), '2024-01-01') ; -- Con un intervalo determinado SELECT TIMESTAMPDIFF(MINUTE,now(),'2024-01-01 12:05:55');