query con fechas en oracle
Tengo un problema al comparar una fecha que paso como parametro y que comparo con un campo fecha de tipo "date" se que los tipo date estan compuestos por fecha y hora y por eso hice la comparacion con el like pero no me funciona. Si alguien me puede ayudar se lo agradeceria.
Hola, como estas, fiajte no se exactamente como lo estabas comparando, pero por lo regular uno no compara fechas con like, recuerda que al comparar fechas debe ser con un valor tipo fecha, otra cosa, algunas veces hay que truncar la fecha para que no de problemas, cuentame mejor tu caso y te ayudaresmos.
Si el tipo del parametro es "DATE" y como indicas estas comparando contra otro campo tipo "DATE", el LIKE es una mala idea para comparar las fechas.
Lo que podrias hacer por si los dos campos traen la hora es truncar la hora y quedarte solo con la fecha.
Ejemplo:
if to_date(to_char(fecha01,'DD/MM/YYYY'),'DD/MM/YYYY') = to_date(to_char(fecha02,'DD/MM/YYYY'),'DD/MM/YYYY') then
else
end if;
Lo que podrias hacer por si los dos campos traen la hora es truncar la hora y quedarte solo con la fecha.
Ejemplo:
if to_date(to_char(fecha01,'DD/MM/YYYY'),'DD/MM/YYYY') = to_date(to_char(fecha02,'DD/MM/YYYY'),'DD/MM/YYYY') then
else
end if;
Eliza:
No se si es tu caso, pero existe una forma de comparar fechas en las que podes pasarle fecha o fechas como parametros
Ej1:
Para buscar en una tabla todas las filas que correspondan a UNA fecha en particular (desde las 00:00:00 hasta las 23:59:59
Select *
from tabla
where col_fecha
between to_date(pfecha,'dd/mm/yyyy')
and to_date(pfecha,'dd/mm/yyyy') + .99999
Para buscar en una tabla todas las filas esten entre
las 00:00:00 de la primer fecha y las 23:59:59 de la
segunda fecha:
Select *
from tabla
where col_fecha
between to_date(pfecha_desde,'dd/mm/yyyy')
and to_date(pfecha_hasta,'dd/mm/yyyy') + .99999
Espero que te sea de utilidad.
Rick
No se si es tu caso, pero existe una forma de comparar fechas en las que podes pasarle fecha o fechas como parametros
Ej1:
Para buscar en una tabla todas las filas que correspondan a UNA fecha en particular (desde las 00:00:00 hasta las 23:59:59
Select *
from tabla
where col_fecha
between to_date(pfecha,'dd/mm/yyyy')
and to_date(pfecha,'dd/mm/yyyy') + .99999
Para buscar en una tabla todas las filas esten entre
las 00:00:00 de la primer fecha y las 23:59:59 de la
segunda fecha:
Select *
from tabla
where col_fecha
between to_date(pfecha_desde,'dd/mm/yyyy')
and to_date(pfecha_hasta,'dd/mm/yyyy') + .99999
Espero que te sea de utilidad.
Rick
helloooo es para preguntar.. tengo en una tabla empleados fechas de nac.. quiero saber quienes cumplen en el aƱo 1990 o quienes cumplen en abril de cualquier aƱo como puedo hacer el query... mi rollo esta cuando quiero solo tomar el aƱo sin prestarle atencion a el dia y mes para el aƱo... creo q con una respuesta resuelvo las dudas
