Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Agarrar una cadena, convertirla en fecha y calcular edad!! Como lo hago?

Estas en el tema de Agarrar una cadena, convertirla en fecha y calcular edad!! Como lo hago? en el foro de Mysql en Foros del Web. Hola a toda la comunidad!! En mi auto estudio de mysql (Porque la universidad apenas te nombra SQL) he desarrollado una que otra base de ...
  #1 (permalink)  
Antiguo 16/03/2009, 16:30
 
Fecha de Ingreso: febrero-2009
Mensajes: 36
Antigüedad: 15 años, 2 meses
Puntos: 0
Hola a toda la comunidad!! En mi auto estudio de mysql (Porque la universidad apenas te nombra SQL) he desarrollado una que otra base de datos!! claro que pequeñas y simples. En fin, en una tabla tengo el campo cedula (en mi pais se refiere a la identificacion de la persona) y la cedula se compone asi:

001-DiaMesAño-003T

El 001: Los primeros tres numeros varian! eso no importa!!
DiaMesAño: Esos valores son los que me interesan!!
003T: Al iguale que los primeros 3 valores, estos 4 valores no me interensan!!

un ejemplo de cedula seria: 001-101086-001R
el 101086: se refiere al dia,mes,año.

Como puedo agarrar esos valores para convertirlos en fecha y apartir de ahi saber la edad de la persona?
PLEASE HELP ME!!!

HELP ME PLEASE!!!!

Bueno, mi problema lo he buscado y he encontrado respuestas para sql server!! pero no me salen en mysql!!!

Nadie ha tenido el mismo problema que yo?

Última edición por GatorV; 17/03/2009 a las 11:14
  #2 (permalink)  
Antiguo 17/03/2009, 10:34
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Agarrar una cadena, convertirla en fecha y calcular edad!! Como lo hago?

Aunque un poco engorroso

para la cadena 001-010186-003T

select datediff(now(),str_to_date(insert(insert(mid('001-010186-003T',5,6),3,0,'-'),6,0,'-'),'%d-%m-%y'))/365;

Te devuelve 23.2219 años.

Si no quieres la parte decimal

select round(datediff(now(),str_to_date(insert(insert(mid ('001-010186-003T',5,6),3,0,'-'),6,0,'-'),'%d-%m-%y'))/365,0);

desde el 1 de enero del 1986 hasta hoy.

Última edición por huesos52; 17/03/2009 a las 12:19
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:46.