SET SQL_SAFE_UPDATES = 0;

CREATE DATABASE IF NOT EXISTS manejo_fechas CHARACTER SET utf8 COLLATE utf8_general_ci;

USE manejo_fechas;

CREATE TABLE fechas(
fecha DATETIME,
evento VARCHAR(20)
);

INSERT INTO fechas(fecha,evento) VALUES 
('2016-01-21 09:51:00','Evento 1'),
('2015-02-14 12:48:00','Evento 2'),
('2015-06-14 15:23:00','Evento 3'),
('2014-06-18 09:10:00','Evento 4'),
('2014-06-28 16:31:00','Evento 5'),
('2014-04-11 11:45:00','Evento 6'),
('2010-12-18 12:21:00','Evento 7'),
('2010-08-03 00:23:00','Evento 8'),
('2009-1-15 07:32:00','Evento 9'),
('2008-10-21 18:25:00','Evento 10');

/*Seleccionando todas las fechas*/
SELECT * FROM fechas;

/*Seleccionar los eventos con fecha mayor al 2014-04-11 11:45:00*/
SELECT * FROM fechas WHERE fecha > '2014-04-11 11:45:00';


/*Seleccionar los eventos que ocurrieron el 2015-06-14*/
SELECT * FROM fechas WHERE fecha = '2015-06-14'; -- No muestra resultados por el tipo de dato
SELECT * FROM fechas WHERE CAST(fecha AS DATE) = '2015-06-14';

/*Seleccionar los eventos que ocurrieron en el 2010*/
SELECT * FROM fechas WHERE YEAR( fecha ) = '2010';

/*Seleccionar los eventos que ocurrieron en Junio del 2014*/
SELECT * FROM fechas WHERE YEAR(fecha) = '2014' AND MONTH(fecha) = '06';

/*Seleccionar los eventos que ocurrieron en Junio en cualquier año*/
SELECT * FROM fechas WHERE MONTH(fecha) = '06';

/*Seleccionar los eventos que ocurrieron entre las 9 AM y las 15 PM*/
SELECT * FROM fechas WHERE HOUR(fecha) >= '09' AND HOUR(fecha) < '15';

/*Seleccionar los eventos que ocurrieron después de las 9:15 AM y antes de las 15:00 PM*/
SELECT * FROM fechas WHERE (HOUR(fecha) >= '09') AND MINUTE(fecha)>'15'AND HOUR(fecha) < '15';


/*Consultar un periodo de tiempo or intervalo */
SELECT * FROM fechas WHERE DATE(fecha) > '2014-06-01' AND fecha < DATE_ADD( '2014-06-01', INTERVAL 1 MONTH );


/*MUESTRA SOLO LA FECHA COMO AAAA-MM-DD*/
SELECT CAST(fecha AS DATE),evento FROM fechas; 
SELECT DATE(fecha),evento FROM fechas; 

/*MUESTRA SOLO LOS MESES Y LAS HORAS*/
SELECT MONTH(fecha), TIME(fecha),evento FROM fechas; 
SELECT MONTHNAME(fecha), TIME(fecha),evento FROM fechas; 


/*Ejercicio: MOSTRAR en una columna el NOMBRE DEL MES, en otra EL DÍA, en otra EL AÑO y en otra  LA HORA (HH:MM) Y 
finalmente en otra el nombre de los eventos que ocurrieron entre abril del 2014 y febrero del 2015*/
SELECT MONTHNAME(fecha) AS 'Mes', DAY(fecha) AS 'Día', YEAR(fecha) AS 'Año', TIME(fecha) AS 'Hora', evento FROM fechas WHERE DATE(fecha) > '2014-04-01' AND DATE(fecha) < '2015-03-01';

