Oracle - Consulta en campos tipo date

 
Vista:

Consulta en campos tipo date

Publicado por Jonathan Gorrín (2 intervenciones) el 23/08/2006 18:55:09
Saludos, quiero hacer una consulta para un campo tipo date que contiene tanto la fecha como la hora. Lo que quiero es que me traiga todo los registros de un dia completo sin importar la hora, en MySQL seria algo asi:

SELECT * FROM productos WHERE fecha_ingreso LIKE '2006-08-09%;'

No se como hacerlo en oracle pues para trabajar con fechas tengo que convertirlas a date con la funcion to_date y no puedo escribir el string de la fecha

Muchas 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:Consulta en campos tipo date

Publicado por Rodolfo Reyes (445 intervenciones) el 23/08/2006 20:31:14
Yo utilizaria el TRUNC para quitarle las horas minutos y segundos a la fecha, asi ya podria comparar contra una fecha.

SELECT *
FROM productos
WHERE trunc(fecha_ingreso) = '2006-08-09'
/

La otra opción que se me ocurre es que utilizes un between

SELECT *
FROM productos
WHERE fecha_ingreso '2006-08-09' and '2006-08-10'
/
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:Consulta en campos tipo date

Publicado por miguel (66 intervenciones) el 24/08/2006 12:52:30
Que tal.

Lo mas probable es que el codigo proporcionado por el colega Rodolfo Reyes funcione, pero yo lo haria con una mascara:

SELECT *
FROM productos
WHERE fecha_ingreso = to_date('09/08/2006' ,'dd/mm/yyyy');

pero lo que mas recomiendo es colocar la mascara en los dos lados de la igualdad, de esta manera:

SELECT *
FROM productos
WHERE to_date(fecha_ingreso,'dd/mm/yyyy') = to_date('09/08/2006' ,'dd/mm/yyyy');

eso es debido a la variable nls_languaje, asi te curas en salud.

lo otro es que creo que en esta sentencia

SELECT *
FROM productos
WHERE fecha_ingreso '2006-08-09' and '2006-08-10'

falto la palabra BETWEEN por lo cual quedaria de esta manera:

SELECT *
FROM productos
WHERE fecha_ingreso BETWEEN to_date('09/08/2006' ,'dd/mm/yyyy') and to_date('10/08/2006' ,'dd/mm/yyyy').

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