Noticias y artículos Estadísticas Versión actual Películas Videojuegos Términos legales
Catálogo información
Catálogo general
Anuncios
Anúnciate!
Artículos en la Web
Artículo seleccionado
diciembre
de 2010
30
mysql

Como calcular cuantos años tiene una persona a partir de su fecha de nacimiento gracias a MySql

0 Comentarios | Artículos MySQL | diciembre de 2010


Te gusta el mundo de las películas, videojuegos y música?
No busques más haz clic en el enlace a google play y descubrela :)
No quedarás defaudado, podrás consultar, buscar, ver estadísticas y
y crear tu propio catálogo. I todo en la palma de tu mano siempre contigo.

Este artículo es el primero que voy a crear para tugrancatalago y todo y no es nada del otro mundo, pues me hace Ilusión poder compartir con vosotros este momento tan especial ^_^

Bueno a lo que vamos! Resulta que cuando tienes una buena base de datos de personas con sus fechas de nacimiento es muy fácil calcular a día de hoy cuantos años tienen. Y todo gracias a MySlq. Imaginemos por un momento que tenemos una tabla en nuestra base de datos tan simple como la siguiente:

CREATE TABLE people (
 name varchar(30) default NULL,
 born date default NULL
)

Como podemos ver en esta tabla tenemos un campo born definido con el tipo de dato date, por supuesto también lo podríamos haber definido con un tipo datatime … pero es innecesario a no ser que te guste guardar con horas, minutos y segundos la fecha de nacimiento de una persona, lo cual no me parece una locura la verdad pero normalmente la gente no se suele acordar de este dato y casi el 99% de las bases de datos omiten esta información extra. Para obtener los años de una persona a día actual podemos utilizar la siguiente sentencia:

SELECT (YEAR(CURRENT_DATE) - YEAR(born)) - (RIGHT(CURRENT_DATE,5) < RIGHT(born,5)) AS edad FROM people

Vamos verla un poquito por separado, ya que siempre es interesante conocer lo que montamos en una consulta.

En primer lugar por un lado obtenemos el año actual gracias a las funciones de YEAR y CURRENT_DATE. Esta última nos devuelve la fecha actual del servidor y cuando hacemos YEAR(CURRENT_DATE) estamos especificando que nos devuelva solo el año actual.

En segundo lugar restaremos el año actual al año en el que nació nuestra persona usando la misma función YEAR, pero esta vez miramos la fecha de nacimiento de la persona YEAR(born)). Recordemos que born no es una función sino nuestro campo de base de datos.Por lo tanto ya tenemos esta parte de la SELECT: YEAR(CURRENT_DATE) - YEAR(born))

Hasta este punto hemos restado únicamente años, pero ahora tenemos que mirar el día y el mes en el que nació nuestra persona comparándolo con el día y mes actual. Para este fin el cálculo es muy parecido al anterior, solo que esta vez nos quedaremos con los 5 primeros caracteres de las fechas. Es decir, si por ejemplo consultamos la fecha actual gracias a la función CURRENT_DATE nos devolvería el formato YYYY-MM-DD. Supongamos que hoy es 2010-12-10, por lo tanto RIGHT(CURRENT_DATE,5) nos devolvería los 5 primeros caracteres de la derecha, es decir, 12-10

Después del cálculo anterior, hacemos lo mismo con la fecha de nacimiento de nuestra persona. Y finalmente las evaluamos preguntándonos si el día y mes actual es menor al día y mes de nacimiento. Si es true nos devolverá 1, sino nos devolverá 0.

Llegados a este punto ya solo queda restar para obtener los años reales de una persona.

Espero que os haya servido esta información, no obstante siempre podeis complementarla o obtener más información de la página oficial de MySql.

Más información sobre cálculo de fechas para MySql

Otros Artículos relacionados:

1.- Como calcular cuantos años tiene una persona a partir de su fecha de nacimiento gracias a MySql
Comentarios
Tops y estadísticas
Top películas (Est)
Top Videojuegos (Est)
Últimas películas
1.- El vuelo (Flight) (2012)
2.- Lincoln (2012)
3.- Django desencadenado (2012)
4.- Jack Reacher (2012)
5.- The Master (2012)
6.- Rompe Ralph! (2012)
7.- Los Miserables (2012)
8.- El alucinante mundo de Norman (2012)
9.- El Hobbit: un viaje inesperado (2012)
10.- Invasor (2012)
Más películas
Últimos videojuegos
1.- test (NDS)
2.- Pokémon Conquest (NDS)
3.- SpellForce 2 - Faith in Destiny (PC)
4.- DiRT Showdown (360)
5.- DiRT Showdown (PS3)
6.- DiRT Showdown (PC)
7.- Atelier Meruru: The Apprentice of Arland (PS3)
8.- Resistance: Burning Skies (VITA)
9.- Deep Black - Episode 1 (PC)
10.- Wargame: European Escalation (PC)
Más videojuegos
Patrocinadores
Páginas amigas
softilus.com
detapasen.com
ausiasacarin.com
piposerver.com
Noticias y artículos Estadisticas Versión actual Objetivos a cumplir Sugerencias Términos legales
Anúnciate!
Copyright ©2008-2010 tugrancatalogo.com - Esta obra está bajo una licencia de Creative Commons | Términos legales | Sugerencias | Contacta
El copyright de las imágenes y textos pertenecen a las personas, distribuidoras, estudios, compañías y entidades correspondientes.