Buenos dias a todos los amigos del foro,la pregunta es sencila, ¿Cómo hacer una funcion plsql en racle para calcular la edad?...
Mil gracias por adelantado a todos.
| |||
¿ ¿Cómo hacer una funcion plsql para calculara la edad? Buenos dias a todos los amigos del foro,la pregunta es sencila, ¿Cómo hacer una funcion plsql en racle para calcular la edad?... Mil gracias por adelantado a todos. |
| ||||
Respuesta: ¿ ¿Cómo hacer una funcion plsql para calculara la edad? Que tal diego. Esto te puede servir:
Código sql:
Ver original Estamos hablando.
__________________ Without data, You are another person with an opinion. W. Edwads Deming Última edición por huesos52; 22/07/2009 a las 16:12 |
| |||
Respuesta: ¿¿Cómo hacer una funcion plsql para calculara la edad? Daniel gracias por tu respueta tan oportuna , lo que necesito exactamente es que me devuelva una fecha, en año mes y dia ejemplo: 15 años , 6 meses , 3 dias Aqui estoy n poco perdido, he mirado unos cuantos manuales con una funcion para fechas SELECT to_char(sysdate + numtoyminterval(2, 'YEAR'), 'MM/DD/YYYY') FROM dual; y llamao la funcion asi: SELECT campo, NOMBRE_FUNCION to_char(sysdate + numtoyminterval(2, 'YEAR'), 'MM/DD/YYYY') FROM dual; |
| ||||
Respuesta: ¿ ¿Cómo hacer una funcion plsql para calculara la edad? Diego Mire esta:
Código sql:
Ver original Para llamarla debe ser
Código sql:
Ver original Donde el parámetro de entrada es la fecha de nacimiento. Devuelve los años,meses y días que tiene la persona. El uso de numtoyminterval, corresponde a convertir un numero para ser mostrado en formato año-mes, pero no sería posible mostrar también los días. El uso correcto de numtoyminterval es
Código sql:
Ver original Donde se establece la conversión de un numero indicado en meses, para ser mostrado en formato año-mes. Sin embargo, es mas elegante la primera función. Espero le sirva viejo
__________________ Without data, You are another person with an opinion. W. Edwads Deming Última edición por huesos52; 23/07/2009 a las 08:27 |
| |||
Respuesta: ¿ ¿Cómo hacer una funcion plsql para calculara la edad? Daniel usted esta un duro viejo, le agradezco mucho, lo que faltaba era esta parte # SELECT (cast(edad_anos AS varchar2(10))||' anos '||cast(edad_meses AS varchar2(10))||' Meses '||cast(edad_dias AS varchar2(10))||' Dias ') INTO edad FROM dual; # RETURN edad; Me va tocar leer mas para seguir sus pasos. Mucha suerte. |
| |||
Respuesta: ¿ ¿Cómo hacer una funcion plsql para calculara la edad? Cita: Hola, tenemos la muy mala costrumbre de hacer select from dual para cosas que no se necesitan.
Iniciado por huesos52 Diego Mire esta:
Código sql:
Ver original Para llamarla debe ser
Código sql:
Ver original Donde el parámetro de entrada es la fecha de nacimiento. Devuelve los años,meses y días que tiene la persona. El uso de numtoyminterval, corresponde a convertir un numero para ser mostrado en formato año-mes, pero no sería posible mostrar también los días. El uso correcto de numtoyminterval es
Código sql:
Ver original Donde se establece la conversión de un numero indicado en meses, para ser mostrado en formato año-mes. Sin embargo, es mas elegante la primera función. Espero le sirva viejo el codigo mucho mas purificado y rapido seria: CREATE OR REPLACE FUNCTION edades(fec_nac IN date) RETURN VARCHAR2 AS edad_anos number; edad_meses number; edad_dias number; edad varchar2(40); BEGIN edad_anos:=floor(months_between(sysdate, fec_nac)/12); edad_meses:=floor(mod(months_between(sysdate, fec_nac),12)); edad_dias:=floor( (mod(months_between(sysdate, fec_nac),12) - floor(mod(months_between(sysdate, fec_nac),12)))*30 ) ; return (cast(edad_anos as varchar2(10))||' anos '||cast(edad_meses as varchar2(10))||' Meses '||cast(edad_dias as varchar2(10))||' Dias '); end edades; |