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

Numero de meses a años

Estas en el tema de Numero de meses a años en el foro de Bases de Datos General en Foros del Web. Hola a todos, soy nuevo en el foro, tengo un problema con una sentencia en oracle, lo que deseo hacer es restar una fecha de ...
  #1 (permalink)  
Antiguo 07/06/2009, 22:18
 
Fecha de Ingreso: junio-2009
Mensajes: 4
Antigüedad: 14 años, 11 meses
Puntos: 0
Numero de meses a años

Hola a todos, soy nuevo en el foro, tengo un problema con una sentencia en oracle, lo que deseo hacer es restar una fecha de inicio con una fecha final y calcular la cantidad de meses entre esas dos fechas y luego ese numero de meses pasarlos a años, por ejem: 18 meses: 1 año y 6 meses, espero que me puedan ayudar, gracias
  #2 (permalink)  
Antiguo 08/06/2009, 09:52
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 3 meses
Puntos: 360
Respuesta: Numero de meses a años

lamuertevive...

Este tema está bien, pero no repitas temas alrededor del foro que ya has registrado. En el foro de oracle, has puesto en temas que no tienen nada que ver con tu pregunta... esta misma pregunta (Perdón por la redundancia)

Con respecto a la duda, no conozco una función que genere la salida que esperas, pero existe una función que te retorna el numero de meses que transurren entre dos fechas.

Código sql:
Ver original
  1. SELECT months_between(fecha1,fecha2) FROM tabla;

Si lo quieres en termino de años, sería

Código sql:
Ver original
  1. SELECT months_between(fecha1,fecha2)/12 FROM tabla;

Y te genera el numero exacto de años.

Por ejemplo, para 18 meses, te retornaría 1.5 años.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 10/06/2009, 23:21
 
Fecha de Ingreso: junio-2009
Mensajes: 4
Antigüedad: 14 años, 11 meses
Puntos: 0
De acuerdo Respuesta: Numero de meses a años

Gracias huesos52, disculpa por las equivocaciones, ahora ke ya tengo la cantidad de meses, por ejemplo tengo 3 registros en los cuales saco la cantidad de años y meses y los tengo asi, por ejem:

1.- 1 año y 4 mese xxxxx
2.- 2 años y 5 meses yyy
3.- 4 años y 7 meses wwww
----------------------------------
8 años y 4 mese --> este resultado el el que kiero hallar, dandole el formato de fechas(si se pasa de 12 meses ke sea 1 año), espero que me puedas ayudar, para que tengas el contexto,esto se trata de periodos de contratos de una determinada personma y lo que kiero es obtener el total de años y meses que tiene de experiencia, muchas gracias, chau
  #4 (permalink)  
Antiguo 11/06/2009, 06:41
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 3 meses
Puntos: 360
Respuesta: Numero de meses a años

Te entiendo lo que quieres hacer, pero no conozco ninguna función que retorne el resultado esperado. Sin embargo, puedes construirla en PL/SQL, no es para nada compleja. Después de creada, la puedes usar en cualquier concepto que tengas este problema. También puedes hacer esta conversión desde el lenguaje de programación en el que trabajes.

Un saludo
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 11/06/2009, 09:24
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 2 meses
Puntos: 300
Respuesta: Numero de meses a años

Si tienes los meses, te basta con hacer esto:
SELECT FLOOR( campomeses /12 ) anos, ( campomeses %12 ) meses
FROM tabla

No sé si te servirá para Oracle, pero floor es una función matemática de la que obtienes el número entero igual o inferior al valor del número al que se le aplica, y %, el símbolo del tanto por ciento, permite sacar el resto de una división. Creo que podrás usar ambas, pero si no es así, busca sus equivalentes. Luego podrías unir ambos datos para obtener una sola salida y no dos. Luego mediante condicionales podrías poner los singulares y añadir el y...
y, como dice huesos52, podrías hacerlo con programación: seguramente te quedaría más limpio con una función hecha con tu programa. Es lo que yo haría.
  #6 (permalink)  
Antiguo 11/06/2009, 10:44
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 3 meses
Puntos: 360
Respuesta: Numero de meses a años

La idea de Jurena es excelente.

Suponiendo que existen dos campos(fecha1,fecha2) tipo date en una tabla llamada fechas,
Traducido a SQL oracle sería:

Código sql:
Ver original
  1. SELECT FLOOR(months_between(fecha1,fecha2)/12)anos,
  2. MOD(FLOOR(months_between(fecha1,fecha2)),12)meses FROM fechas;

Esto te retorna dos columnas. Una con los años y otra con los meses.

Como ves, tienes varias opciones.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
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:17.