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

comparar fechas con la actual

Estas en el tema de comparar fechas con la actual en el foro de Oracle en Foros del Web. Hola nuevamente, estoy tratando de comparar fechas con la actual para de acuedo a eso que me muestro un 0 si es menor o igual ...
  #1 (permalink)  
Antiguo 01/11/2017, 03:03
 
Fecha de Ingreso: octubre-2011
Mensajes: 132
Antigüedad: 12 años, 6 meses
Puntos: 4
comparar fechas con la actual

Hola nuevamente, estoy tratando de comparar fechas con la actual para de acuedo a eso que me muestro un 0 si es menor o igual y un 1 si es mayor en un dia, entonces tengo varios rgistro en un detalle con varias fechas y he seleccionado la fecha mayor de esta manera.

Código SQL:
Ver original
  1. SELECT * FROM acceso_sala_fechas
  2. WHERE fecha  = (
  3.     SELECT MAX(fecha)
  4.     FROM acceso_sala_fechas
  5. ) AND codigo = 1082;

"La fecha es de tipo DATE".

Ahora lo que yo necesito es que si esa fecha mayor es igual o mneor que la actual me ponga cero y si no un 1, para luego por php colocarle un boton de alerta en rojo si es 1 o verde si es 0 espeor haberme dejado entender espero alguen me ilumine, GRACIAS de antemano por su ayuda.

Última edición por stevens82; 01/11/2017 a las 03:29
  #2 (permalink)  
Antiguo 01/11/2017, 06:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: comparar fechas con la actual

Para eso no puedes usar "*". Tienes que invocar las columnas por su nombre, o por lo menos un alias para la tabla.

Podrías probar esto:

Código SQL:
Ver original
  1. SELECT asf.*,
  2.        (CASE
  3.            WHEN TRUNC (asf.fecha) > TRUNC (SYSDATE) THEN 1
  4.            ELSE 0
  5.         END)
  6.           ValidezFecha
  7.   FROM acceso_sala_fechas asf
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 01/11/2017 a las 06:44
  #3 (permalink)  
Antiguo 01/11/2017, 11:18
 
Fecha de Ingreso: octubre-2011
Mensajes: 132
Antigüedad: 12 años, 6 meses
Puntos: 4
Respuesta: comparar fechas con la actual

hola gracias funciona para su cometido pero unaultia consulta eso lo estoy agegando a esta consulta que s la que funciona actualmente

Código SQL:
Ver original
  1. SELECT A.codigo, A.solicitud, A.solicitante, A.gabinete, A.sala, A.id_estado_oym, A.id_estado_sst, A.id_estado_seg, OM.estado_v AS estado_oym, ST.estado_v AS estado_sst, SG.estado_v AS estado_seg
  2.              FROM acceso_sala_solicitud A
  3.              INNER JOIN estado_valida OM ON A.id_estado_oym = OM.id
  4.              INNER JOIN estado_valida ST ON A.id_estado_sst = ST.id
  5.              INNER JOIN estado_valida SG ON A.id_estado_seg = SG.id
  6.              WHERE (A.id_estado_oym <> 2 OR A.id_estado_seg <> 2 OR A.id_estado_sst <> 2) ORDER BY A.id DESC;

donde me muestra 8 registros

y al agregar la consulta de esta manera me arroja solo 6 registros

Código SQL:
Ver original
  1. SELECT A.codigo, A.solicitud, A.solicitante, A.gabinete, A.sala, A.id_estado_oym, A.id_estado_sst, A.id_estado_seg,
  2. OM.estado_v AS estado_oym, ST.estado_v AS estado_sst, SG.estado_v AS estado_seg,
  3. (CASE WHEN TRUNC (AF.FECHA) > TRUNC (SYSDATE) THEN 1 ELSE 0 END) ValidezFecha FROM acceso_sala_solicitud A
  4. INNER JOIN acceso_sala_fechas AF ON A.codigo = AF.codigo
  5. INNER JOIN estado_valida OM ON A.id_estado_oym = OM.id
  6. INNER JOIN estado_valida ST ON A.id_estado_sst = ST.id
  7. INNER JOIN estado_valida SG ON A.id_estado_seg = SG.id
  8. WHERE (A.id_estado_oym <> 2 OR A.id_estado_seg <> 2 OR A.id_estado_sst <> 2) ORDER BY A.id DESC;

me podrias corregir porfavor?
  #4 (permalink)  
Antiguo 01/11/2017, 11:28
 
Fecha de Ingreso: octubre-2011
Mensajes: 132
Antigüedad: 12 años, 6 meses
Puntos: 4
Respuesta: comparar fechas con la actual

ohh creo que el error es en que hay 2 registros sin fechas.

Creo me equivoqe se repiten registros :(

ahi acceso_sala_solicitud cada registro tiene varias fechas, de esas intento agarrar la fecha mayor y comparar con la del dia actual para que en el registro de los accseso_sala_slicitud me muestre al lado de cada registro el boton verde o rojo.

con esto me traigo elmaximo de registro por codigo

Código SQL:
Ver original
  1. SELECT DISTINCT(AF.codigo),
  2. (SELECT  MAX(fecha) FROM ACCESO_SALA_FECHAS WHERE codigo = AF.codigo) total
  3. FROM ACCESO_SALA_FECHAS AF ORDER BY AF.codigo;

ahora lo que deseo es comparar cada uno de esos registros con la fecha actual y me poga 1 ó 0.

Última edición por stevens82; 01/11/2017 a las 12:40

Etiquetas: actual
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 21:12.