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