Entrar | Registrarme    
 
  Inicio
  Artículos
  Lista de correo
  Ligas
  Próximos eventos
  Enviar noticia
  Búsqueda
  Comentarios y sugerencias
  Acerca de

  Guía rápida de administración de...
De todo un poco en cuestiones de administración de un servidor MySQL, instalación, ejecución, usuarios, respaldos, creación de tablas, índices, optimización, etc.

  MySQL Connector/Net
El Connector/Net MySQL permite a los desarrolladores crear facilmente aplicaciones .NET que requieren seguridad, alto rendimiento de datos y conectividad con bases de datos MySQL.

  Almacenando contraseñas en MySQL
Consejos útiles para cuando se desean almacenar contraseñas en una base de datos.

Ninguno
  Los 10 artículos más leídos
  Las 10 noticias más leídas
  Las 10 ligas más visitadas
  Los 10 países con más usuarios

  jHeidi 3.6 alpha disponible
    Fecha publicación: 24 Nov del 2008
    2555 lecturas - 0 comentario(s)


  Disponible MySQL Workbench 5.1.4 Alpha - Linux
    Fecha publicación: 10 Nov del 2008
    2736 lecturas - 0 comentario(s)


  Principales sistemas operativos usados en producción para MySQL
    Fecha publicación: 06 Nov del 2008
    4180 lecturas - 1 comentario(s)


  Lenguaje de programación más usado con MySQL
    Fecha publicación: 06 Nov del 2008
    8150 lecturas - 0 comentario(s)


  IDEs principales para desarrollo con MySQL
    Fecha publicación: 03 Nov del 2008
    5661 lecturas - 0 comentario(s)


  Mysql hispano tiene el mejor contenido
    Fecha publicación: 27 Ago del 2008
    4557 lecturas - 2 comentario(s)


  El destino de los logs
    Fecha publicación: 11 Ago del 2008
    3514 lecturas - 0 comentario(s)


  MySQL 5.0.67 ha sido liberado
    Fecha publicación: 11 Ago del 2008
    6191 lecturas - 1 comentario(s)


  Connector/C++
    Fecha publicación: 01 Ago del 2008
    3769 lecturas - 1 comentario(s)


  HiveDB
    Fecha publicación: 05 Jun del 2008
    3670 lecturas - 0 comentario(s)





Tutorial básico de MySQL - II
El objetivo de este tutorial es mostrar el uso del programa cliente mysql para crear y usar una base de datos
Autor: MySQL AB
Fecha publicación: 08 Enero del 2003
Enviado por: blueman  Mensaje privado a blueman
Lecturas: 372265
Última actualización: 15 Enero del 2003
9 comentario(s) Comments
   
12345678910

Acerca de este documento

Esta es la parte complementaria del artgculo publicado con anterioridad titulado Tutorial básico de MySQL. Seguramente se tendrá que leer primero dicho artículo para entender lo que se explica en este documento.


Cálculos con fechas

MySQL proporciona diversas funciones que se pueden usar para efectuar cálculos sobre fechas, por ejemplo, para calcular edades o extraer partes de una fecha (día, mes, año, etc).

Para determinar la edad de cada una de nuestras mascotas, tenemos que calcular la diferencia de años de la fecha actual y la fecha de nacimiento, y entonces substraer uno si la fecha actual ocurre antes en el calendario que la fecha de nacimiento. Las siguientes consultas muestran la fecha actual, la fecha de nacimiento y la edad para cada mascota.


mysql> SELECT nombre, nacimiento, CURRENT_DATE,
    -> (YEAR(CURRENT_DATE) - YEAR(nacimiento)) 
    -> - (RIGHT(CURRENT_DATE,5) < RIGHT(nacimiento,5)) AS edad FROM mascotas;
+--------+------------+--------------+------+
| nombre | nacimiento | CURRENT_DATE | edad |
+--------+------------+--------------+------+
| Fluffy | 1999-02-04 | 2002-12-23   |    3 |
| Mau    | 1998-03-17 | 2002-12-23   |    4 |
| Buffy  | 1999-05-13 | 2002-12-23   |    3 |
| FanFan | 2000-08-27 | 2002-12-23   |    2 |
| Kaiser | 1989-08-31 | 2002-12-23   |   13 |
| Chispa | 1998-09-11 | 2002-12-23   |    4 |
| Wicho  | 2000-02-09 | 2002-12-23   |    2 |
| Skim   | 2001-04-29 | 2002-12-23   |    1 |
| Pelusa | 2000-03-30 | 2002-12-23   |    2 |
+--------+------------+--------------+------+
9 rows in set (0.01 sec)

Aquí, YEAR( ) obtiene únicamente el año y RIGHT( ) obtiene los cinco caracteres más a la derecha de cada una de las fechas, que representan el mes y el día (MM-DD). La parte de la expresión que compara los valores MM-DD se evalúa a 1 o 0, y permite ajustar el valor de la edad en el caso de que el valor MM-DD de la fecha actual ocurra antes del valor MM-DD de la fecha de nacimiento.

Dado que la expresión en sí es bastante fea, se ha usado un alias (edad) que es el que aparece como etiqueta en la columna que muestra el resultado de la consulta.

Esta consulta debe trabajar bien, pero el resultado puede ser de alguna manera más útil si las filas son presentadas en algún orden. Para ello haremos uso de la cláusula ORDER BY.

Por ejemplo, para ordenar por nombre, usaremos la siguiente consulta:

mysql> SELECT nombre, nacimiento, CURRENT_DATE,
    -> (YEAR(CURRENT_DATE) - YEAR(nacimiento)) 
    -> - (RIGHT(CURRENT_DATE,5) < RIGHT(nacimiento,5))
    -> AS edad FROM mascotas ORDER BY nombre;
+--------+------------+--------------+------+
| nombre | nacimiento | CURRENT_DATE | edad |
+--------+------------+--------------+------+
| Buffy  | 1999-05-13 | 2002-12-23   |    3 |
| Chispa | 1998-09-11 | 2002-12-23   |    4 |
| FanFan | 2000-08-27 | 2002-12-23   |    2 |
| Fluffy | 1999-02-04 | 2002-12-23   |    3 |
| Kaiser | 1989-08-31 | 2002-12-23   |   13 |
| Mau    | 1998-03-17 | 2002-12-23   |    4 |
| Pelusa | 2000-03-30 | 2002-12-23   |    2 |
| Skim   | 2001-04-29 | 2002-12-23   |    1 |
| Wicho  | 2000-02-09 | 2002-12-23   |    2 |
+--------+------------+--------------+------+
9 rows in set (0.00 sec)
Para ordenar por edad en lugar de nombre, únicamente tenemos que usar una cláusula ORDER BY diferente:
mysql> SELECT nombre, nacimiento, CURRENT_DATE,
    -> (YEAR(CURRENT_DATE) - YEAR(nacimiento)) 
    -> - (RIGHT(CURRENT_DATE,5) < RIGHT(nacimiento,5))
    -> AS edad FROM mascotas ORDER BY edad;
+--------+------------+--------------+------+
| nombre | nacimiento | CURRENT_DATE | edad |
+--------+------------+--------------+------+
| Skim   | 2001-04-29 | 2002-12-23   |    1 |
| FanFan | 2000-08-27 | 2002-12-23   |    2 |
| Wicho  | 2000-02-09 | 2002-12-23   |    2 |
| Pelusa | 2000-03-30 | 2002-12-23   |    2 |
| Fluffy | 1999-02-04 | 2002-12-23   |    3 |
| Buffy  | 1999-05-13 | 2002-12-23   |    3 |
| Mau    | 1998-03-17 | 2002-12-23   |    4 |
| Chispa | 1998-09-11 | 2002-12-23   |    4 |
| Kaiser | 1989-08-31 | 2002-12-23   |   13 |
+--------+------------+--------------+------+
9 rows in set (0.01 sec)

 
12345678910