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

problema consulta con fechas.

Estas en el tema de problema consulta con fechas. en el foro de Oracle en Foros del Web. Buenas tengo esta consulta hecha en oracle. select TO_DATE(concat(to_char(fechavencimiento, 'DD/'),to_char(sysdate, 'MM/YYYY')),'DD/MM/YY') from tabla; l oque hace es formar una fecha basandose en el dia del ...
  #1 (permalink)  
Antiguo 28/10/2010, 15:47
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 6 meses
Puntos: 50
problema consulta con fechas.

Buenas tengo esta consulta hecha en oracle.


select TO_DATE(concat(to_char(fechavencimiento, 'DD/'),to_char(sysdate, 'MM/YYYY')),'DD/MM/YY') from tabla;

l oque hace es formar una fecha basandose en el dia del registro de la base de datos y el mes y año actual es decir

Registro base de datos: 30/10/2012
Fecha Actual: 27/10/2010

Fecha devuelta: 30/10/2010


en teoria funciona pero si por ejempl oel dia es 31 y el mes actual es febrero (osea 02) Como hago para que me valide si existe ese dia y si no existe pues recalcule la fecha, es decir pasaria al 03 de marzo proque febrero tiene solo 28 dias
  #2 (permalink)  
Antiguo 29/10/2010, 09:32
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: problema consulta con fechas.

Buenos días helacer, creo que lo que te conviene es programar una función que te haga todas las validaciones, pues debes recordar que por ejemplo si se trata de un año bisiesto entonces febrero tiene 29 días.

Además no solo tienes que valida el mes de febrero. Los meses de Abril, Junio, Septiembre y Noviembre sólo tienen 30 días por lo que si la fecha de vencimiento es 31 tampoco es válida.

Las validaciones que tendrías que hacer entonces se complicarían mucho como para tratarlas de sacar con un simple select.

Saludos.
Leo

Etiquetas: fechas
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 08:05.