Manejo de Fechas
crear la sigueinte base de datos.
mysql> create database cumple;
Query OK, 1 row affected (0.03 sec)
mysql> use cumple;
Database changed
mysql> create table ejercicio
-> (codigo char(10) primary key,nombre char(30), sexo char(10), nacimiento date, hijos char(2));
Query OK, 0 rows affected (0.08 sec)
mysql> describe ejercicio;
+------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+----------+------+-----+---------+-------+
| codigo | char(10) | YES | | NULL | |
| nombre | char(30) | YES | | NULL | |
| sexo | char(10) | YES | | NULL | |
| nacimiento | date | YES | | NULL | |
| hijos | char(2) | YES | | NULL | |
+------------+----------+------+-----+---------+-------+
5 rows in set (0.09 sec)
mysql> insert into ejercicio(codigo,nombre,sexo,nacimiento,hijos) values('22663355','Angel Cuadrado','hombre','1966-05-13','0');
Query OK, 1 row affected (0.00 sec)
ingresar todos estos datos
+------------+-------------------+--------+------------+-------+
| codigo | nombre | sexo | nacimiento | hijos |
+------------+-------------------+--------+------------+-------+
| 22663355 | Angel Cuadrado | hombre | 1966-05-13 | 0 |
| 1188996633 | Yoreida María | mujer | 1978-03-05 | 2 |
| 4488663322 | Jorge Fuentes | hombre | 1980-06-22 | 2 |
| 0022559966 | Eder Pulgar | hombre | 1960-02-20 | 6 |
| 0822559966 | Mariana Gonzalez | mujer | 1982-03-24 | 1 |
| 556959966 | Angela Ruiz | mujer | 1977-11-15 | 1 |
| 0028957446 | Juan Carlos Serpa | hombre | 1982-11-25 | 2 |
| 9999957446 | Carlota Sonora | mujer | 1985-11-03 | 4 |
+------------+-------------------+--------+------------+-------+
mysql> select current_date();
+----------------+
| current_date() |
+----------------+
| 2013-05-14 |
+----------------+
1 row in set (0.01 sec)
mysql> select year(current_date);
+--------------------+
| year(current_date) |
+--------------------+
| 2013 |
+--------------------+
1 row in set (0.00 sec)
mysql> select month(current_date);
+---------------------+
| month(current_date) |
+---------------------+
| 5 |
+---------------------+
1 row in set (0.00 sec)
mysql> select day(current_date);
+-------------------+
| day(current_date) |
+-------------------+
| 14 |
+-------------------+
1 row in set (0.02 sec)
mysql> select date_add(current_date(),interval 15 day);
+------------------------------------------+
| date_add(current_date(),interval 15 day) |
+------------------------------------------+
| 2013-05-29 |
+------------------------------------------+
1 row in set (0.00 sec)
mysql> select date_add(current_date(),interval 3 month);
+-------------------------------------------+
| date_add(current_date(),interval 3 month) |
+-------------------------------------------+
| 2013-08-14 |
+-------------------------------------------+
1 row in set (0.00 sec)
mysql> select date_add(current_date(),interval 3 year);
+------------------------------------------+
| date_add(current_date(),interval 3 year) |
+------------------------------------------+
| 2016-05-14 |
+------------------------------------------+
1 row in set (0.00 sec)
mysql> select date_add(current_date(),interval 5 year);
+------------------------------------------+
| date_add(current_date(),interval 5 year) |
+------------------------------------------+
| 2018-05-14 |
+------------------------------------------+
1 row in set (0.00 sec)
mysql> select date_add(current_date(),interval 5 month);
+-------------------------------------------+
| date_add(current_date(),interval 5 month) |
+-------------------------------------------+
| 2013-10-14 |
+-------------------------------------------+
1 row in set (0.00 sec)
mysql> select datediff(current_date(),"1991-08-19");
+---------------------------------------+
| datediff(current_date(),"1991-08-19") |
+---------------------------------------+
| 7939 |
+---------------------------------------+
1 row in set (0.00 sec)
mysql> select datediff(current_date(),"1991-10-11");
+---------------------------------------+
| datediff(current_date(),"1991-10-11") |
+---------------------------------------+
| 7886 |
+---------------------------------------+
1 row in set (0.00 sec)
mysql> select nombre,year(current_date)-year(nacimiento) from ejercicio;
+-------------------+-------------------------------------+
| nombre | year(current_date)-year(nacimiento) |
+-------------------+-------------------------------------+
| Eder Pulgar | 53 |
| Juan Carlos Serpa | 31 |
| Mariana Gonzalez | 31 |
| Yoreida María | 35 |
| Angel Cuadrado | 47 |
| Jorge Fuentes | 33 |
| Angela Ruiz | 36 |
| Carlota Sonora | 28 |
+-------------------+-------------------------------------+
8 rows in set (0.00 sec)
mysql> select nombre,year(current_date)-year(nacimiento)"Edad" from ejercicio;
+-------------------+------+
| nombre | Edad |
+-------------------+------+
| Eder Pulgar | 53 |
| Juan Carlos Serpa | 31 |
| Mariana Gonzalez | 31 |
| Yoreida María | 35 |
| Angel Cuadrado | 47 |
| Jorge Fuentes | 33 |
| Angela Ruiz | 36 |
| Carlota Sonora | 28 |
+-------------------+------+
8 rows in set (0.00 sec)
mysql> select nombre,month(current_date)-month(nacimiento)"Meses" from ejercicio
;
+-------------------+-------+
| nombre | Meses |
+-------------------+-------+
| Eder Pulgar | 3 |
| Juan Carlos Serpa | -6 |
| Mariana Gonzalez | 2 |
| Yoreida María | 2 |
| Angel Cuadrado | 0 |
| Jorge Fuentes | -1 |
| Angela Ruiz | -6 |
| Carlota Sonora | -6 |
+-------------------+-------+
8 rows in set (0.00 sec)
"No tiene sentido hacer esta consulta"
mysql> select nombre, (current_date)-(nacimiento)"Meses" from ejercicio;
+-------------------+--------+
| nombre | Meses |
+-------------------+--------+
| Eder Pulgar | 530294 |
| Juan Carlos Serpa | 309389 |
| Mariana Gonzalez | 310190 |
| Yoreida María | 350209 |
| Angel Cuadrado | 470001 |
| Jorge Fuentes | 329892 |
| Angela Ruiz | 359399 |
| Carlota Sonora | 279411 |
+-------------------+--------+
8 rows in set (0.00 sec)
"No se sabe que esta mostrando"
--------------------------------------------------------------------------------
EJERCICIOS
1) Cuantas persona nacieron entre los años de 1960 y 1969
Solución:
mysql> select count(*)"cantidad" from ejercicio where year(nacimiento) between "
1960" and "1969";
+----------+
| cantidad |
+----------+
| 2 |
+----------+
1 row in set (0.00 sec)
-----------------------------------------------------------------------------------
2) Imprimir toda la información de las personas que tienen entre 28 y 33 años
Solución:
mysql> select * from ejercicio where year(current_date())-year(nacimiento) betwe
en "28" and "33";
+------------+-------------------+--------+------------+-------+
| codigo | nombre | sexo | nacimiento | hijos |
+------------+-------------------+--------+------------+-------+
| 0028957446 | Juan Carlos Serpa | hombre | 1982-11-25 | 2 |
| 0822559966 | Mariana Gonzalez | mujer | 1982-03-24 | 1 |
| 4488663322 | Jorge Fuentes | hombre | 1980-06-22 | 2 |
| 9999957446 | Carlota Sonora | mujer | 1985-11-03 | 4 |
+------------+-------------------+--------+------------+-------+
4 rows in set (0.00 sec)
"Para comprobar si es verdad"
mysql> select nombre,year(current_date)-year(nacimiento)"Edad" from ejercicio wh
ere year(current_date())-year(nacimiento) between "28" and "33";
+-------------------+------+
| nombre | Edad |
+-------------------+------+
| Juan Carlos Serpa | 31 |
| Mariana Gonzalez | 31 |
| Jorge Fuentes | 33 |
| Carlota Sonora | 28 |
+-------------------+------+
4 rows in set (0.00 sec)
mysql> select *,year(current_date)-year(nacimiento)"Edad" from ejercicio where y
ear(current_date())-year(nacimiento) between "28" and "33";
+------------+-------------------+--------+------------+-------+------+
| codigo | nombre | sexo | nacimiento | hijos | Edad |
+------------+-------------------+--------+------------+-------+------+
| 0028957446 | Juan Carlos Serpa | hombre | 1982-11-25 | 2 | 31 |
| 0822559966 | Mariana Gonzalez | mujer | 1982-03-24 | 1 | 31 |
| 4488663322 | Jorge Fuentes | hombre | 1980-06-22 | 2 | 33 |
| 9999957446 | Carlota Sonora | mujer | 1985-11-03 | 4 | 28 |
+------------+-------------------+--------+------------+-------+------+
4 rows in set (0.00 sec)
------------------------------------------------------------------------------------
3) Contar cuantas personas tienen hasta 28 años y su sexo es mujer
mysql> select count(*)"Cantidad" from ejercicio where year(current_date())-year(
nacimiento) <="28" and sexo="mujer";
+----------+
| Cantidad |
+----------+
| 1 |
+----------+
1 row in set (0.00 sec)
Archibo en bloc de notas
