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

Consultar tablas solo por el mes

Estas en el tema de Consultar tablas solo por el mes en el foro de Oracle en Foros del Web. Hola, a todos, tengo un pequeña duda, hay manera de hacer un consulta sobre una tabla que tiene un campo de Fecha, pero que se ...
  #1 (permalink)  
Antiguo 31/05/2013, 09:57
Avatar de Sougiro  
Fecha de Ingreso: octubre-2007
Mensajes: 136
Antigüedad: 16 años, 6 meses
Puntos: 1
Consultar tablas solo por el mes

Hola, a todos, tengo un pequeña duda, hay manera de hacer un consulta sobre una tabla que tiene un campo de Fecha, pero que se pueda obtener todos los datos que correspondan al mes por ejemplo solo Enero o MM= 1.

Gracias por la ayuda.
  #2 (permalink)  
Antiguo 31/05/2013, 10:32
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: Consultar tablas solo por el mes

Código SQL:
Ver original
  1. WHERE TO_CHAR(ampo_fecha,'MM') = '01';
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 31/05/2013, 11:16
Avatar de Sougiro  
Fecha de Ingreso: octubre-2007
Mensajes: 136
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: Consultar tablas solo por el mes

Hola,

Gracias por responder, mira estoy haciendo lo que me dices, pero me sale el siguiente error (ORA-01481: invalid number format model), esta es la consulta que estoy tratando de hacer:
Código SQL:
Ver original
  1. SELECT   P.FABRICANTE_CODIGO ID_FABRICANTE, P.NIT, GE.GRUPO_NOMBRE,
  2.          SUBSTR (P.FABRICANTE_EAN, 2, 4) AS AGENTE,
  3.          TO_DATE (TO_DATE (CP.FECHA_VENCIMIENTO, 'J'),
  4.                   'DD/MM/RRRR'
  5.                  ) AS FECHA_VENCIMIENTO,
  6.          CP.CANTIDAD_CONTRATADA, (CSP.CONSUMO) AS MOV_REALIZADOS
  7.     FROM ADMSIG.SIG_PROVEEDORES P,
  8.          ADMSIG.SIG_PROVEEDORES_POR_GRUPO PG,
  9.          ADMSIG.SIG_CLIENTES_PREPAGO CP,
  10.          ADMSIG.SIG_GRUPO_EMPRESARIAL GE,
  11.          LIQSIG.LIQ_APLICACIONES_POR_GRUPO AP,
  12.          ADMSIG.SIG_CONSUMO_PREPAGO CSP
  13.    WHERE CP.APLICACION_CODIGO = 'IDSE'
  14.      AND AP.APLICACION_CODIGO = 'IDSE'
  15.      AND GE.ESTADO = 1
  16.      AND CSP.ID_CLIENTE_PREPAGO = CP.ID_CLIENTE_PREPAGO
  17.      AND P.ID_FABRICANTE = PG.ID_FABRICANTE
  18.      AND NOT SUBSTR (P.FABRICANTE_EAN, 2, 4) = '0098'
  19.      AND CP.ID_GRUPO = PG.ID_GRUPO
  20.      AND GE.ID_GRUPO = PG.ID_GRUPO
  21.      AND GE.ID_GRUPO = AP.ID_GRUPO
  22.      AND NOT (    AP.TIPO_COBRO = 0
  23.               AND (GE.ID_GRUPO <> GE.ID_GRUPO_PK))
  24.      AND TO_CHAR (CP.FECHA_VENCIMIENTO, 'MM') = '05'
  25. ORDER BY CP.FECHA_VENCIMIENTO;

Gracias.

Última edición por gnzsoloyo; 31/05/2013 a las 11:20 Razón: SQL mal etiquetado.
  #4 (permalink)  
Antiguo 31/05/2013, 11:21
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: Consultar tablas solo por el mes

Pregunta del millón: ¿Cómo tienes definido el campo "FECHA_VENCIMIENTO"?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 31/05/2013, 11:30
Avatar de Sougiro  
Fecha de Ingreso: octubre-2007
Mensajes: 136
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: Consultar tablas solo por el mes

En la tabla esta como number, creo que eso va a complicar las cosas, no?
  #6 (permalink)  
Antiguo 31/05/2013, 12:01
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: Consultar tablas solo por el mes

Un poco. Pero dinos el formato como se encuentra almacenado.

20130531 o con horas? minutos? segundos?

Dependiendo de esto, podrías hacer uso de la función substr o bien, primero convertir de numero a fecha y luego a string con la función que te pasé.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 31/05/2013, 13:59
Avatar de Sougiro  
Fecha de Ingreso: octubre-2007
Mensajes: 136
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: Consultar tablas solo por el mes

Hola,

Si mira lo hice de esta forma y si funciona:

SUBSTR(TO_DATE(CP.FECHA_VENCIMIENTO, 'J'),4,2) = '05'

Pero ahora me surgió otra problema, resulta que como la base de datos es muy vieja hay datos hasta de 1999, trate de hacer lo mismo pero con el año, pero de una extraña manera solo me sale 02 0 03, no me sale 2013, como podria hacer si lo comparo con TO_CHAR(SYSTIMESTAMP, 'YYYY'), ya que este si me trae el 2013.

Gracias por la ayuda.
  #8 (permalink)  
Antiguo 31/05/2013, 14:12
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: Consultar tablas solo por el mes

Con la conversión a J es por que lo tienes en dias julianos.

La verdad poco he trabajado con esto.
Debe haber una conversión para que te extraiga el año con base en una fecha en formato juliano.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #9 (permalink)  
Antiguo 31/05/2013, 14:24
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: Consultar tablas solo por el mes

Sacame de una duda: Si lo tienes como NUMBER, ¿cómo queda representada la fecha si lo imprimes como tal?
Supongamos el día 01/01/2013... ¿Cómo queda escrito? si lo haces directamente como TO_CHAR()
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 31/05/2013, 14:34
Avatar de Sougiro  
Fecha de Ingreso: octubre-2007
Mensajes: 136
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: Consultar tablas solo por el mes

Hola,

Como TO_CHAR solito sin nada, queda asi 2456806, ya la conversion con la fecha con el TO_DATE si queda asi 28/05/2014, por eso trate de hacerlo con el SUBSTR, pero no me dio.
  #11 (permalink)  
Antiguo 31/05/2013, 14:40
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: Consultar tablas solo por el mes

Mira esto:
Código SQL:
Ver original
  1. SQL> SELECT to_char(to_date(2456806,'j'),'YYYY') "año"  FROM dual;
  2.  
  3. año
  4. ----
  5. 2014
  6.  
  7. SQL> SELECT to_char(to_date(2451330,'j'),'YYYY') "año"  FROM dual;
  8.  
  9. año
  10. ----
  11. 1999

Con esta pagina Pagina busqué una fecha del 1999.

El substr ahi no te vale.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #12 (permalink)  
Antiguo 31/05/2013, 14:59
Avatar de Sougiro  
Fecha de Ingreso: octubre-2007
Mensajes: 136
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: Consultar tablas solo por el mes

Hola,

Muchísimas gracias, con ese método si me funciono a la perfección.

Etiquetas: consultar, tabla, tablas
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 13:35.