Oracle - Tomar registros entre fechas

 
Vista:

Tomar registros entre fechas

Publicado por Gustavo Alvarez (8 intervenciones) el 22/12/2006 15:43:14
Hola,

Tengo una tabla con un atributo fecha, del tipo timestamp y otro valor de tipo number, lo que quiero es tomar los registros que se encuentren entre una fecha dada y una semana anterior, actualmente calculo yo las fechas y uso la función to_char, pero me parece que oracle debería tener funciones que hagan todo esto, alguien me puede ayudar? me gustaría usar el comparador between, pero no se cómo colocar la fecha de hace una semana.

Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Tomar registros entre fechas

Publicado por Ricardo (84 intervenciones) el 26/12/2006 14:10:09
Gustavo:

Se me ocurre algo como esto:

select to_char(sysdate ,'dy dd/mm/yyyy') hoy
,to_char(sysdate-7 ,'dy dd/mm/yyyy') hace_7_dias
,to_char(sysdate-14 ,'dy dd/mm/yyyy') hace_14_dias
from dual

Saludos
Ricardo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tomar registros entre fechas

Publicado por Gustavo (8 intervenciones) el 26/12/2006 15:27:09
SI, eso me parece bein, el problema esta cuando el usuario debe colocar las fechas, aún no entiendo qué formato debe tener la fecha que se coloque, para sacarlo de hoy y una semana atrás esta muy bien, pero cómo hacer cuando el usuario puede colocar una fecha ocurrida en algún tiempo anterior?

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tomar registros entre fechas

Publicado por Hector (127 intervenciones) el 29/12/2006 23:35:17
Hola.

Tal vez es algo asi mas o menos lo que quieres hacer:

No importa si es forms o reports, voy a nombrar las variables fechaini y fechafin, si fuera reports las tomarias de la ventana de parametros y forms de un bloque de datos.

Select *
From Facturas
Where Fecha_venta between :FechaIni And :FechaFin

Eso deberia traerte las facturas que tienen fecha de venta en medio de dos fechas aleatorias puestas por el usuario.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tomar registros entre fechas

Publicado por Gustavo Alvarez (8 intervenciones) el 30/12/2006 00:14:48
Hola!

Realmente estuve usando cosas parecidas, pero nada funcionaba, la consulta la envío desde una clase de java, la única forma que encontré para solucionarla fue usar la función to_timestamp y así pude colcoar el formato, quedó algo como lo siguiente:

select *
from valores_diario
where to_timestamp(fecha,'yyyy-mm-dd hh24:mi.ss') between to_timestamp('anio-mes-dia hora:min.seg','yyyy-mm-dd hh24:mi.ss') and to_timestamp('anio2-mes2-dia2 hora2:min2.seg2','yyyy-mm-dd hh24:mi.ss')

Los valores anio, mes, dia, hora, min, seg, anio2, mes2, dia2, hora2, min2, seg2 los paso como parámetros a la función que realiza el llamado a la base de datos

Sin embargo muchas gracias por su ayuda!
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar