Duda con fechas en Oracle SQL+
Hola,
Estoy usando una BD Oracle, y en una tabla con un campo de tipo DATE me encuentro con que al hacer:
select * from TABLA where to_char(COLUMNA)='14/09/03';
obtengo resultados, mientras que al hacer
select * from TABLA where COLUMNA=to_date('14/09/03');
no obtiene resultados, y esto ocurre aún especificando el formato de la fecha.
¿Alguien sabe por qué ocurre esto? ¿Qué hago mal¿
gracias.
Estoy usando una BD Oracle, y en una tabla con un campo de tipo DATE me encuentro con que al hacer:
select * from TABLA where to_char(COLUMNA)='14/09/03';
obtengo resultados, mientras que al hacer
select * from TABLA where COLUMNA=to_date('14/09/03');
no obtiene resultados, y esto ocurre aún especificando el formato de la fecha.
¿Alguien sabe por qué ocurre esto? ¿Qué hago mal¿
gracias.
Hola, esto pasa porque oracle internamente no guarda las fechas en el formato 'dd/mm/yy' sino que lo hace con mucha más información, por eso cuando intentas comparar fechas con la función date, no te devuelve ningún dato.
Lo mejor para comparar fechas en oracle es utilizar el to_char, ya que puedes decirle el formato de la variable que pasas a char, por ejemplo:
to_char(columna,'dd/mm/yyyy')='14/08/2003'.
Espero que te haya servido y que me haya explicado bien.
Lo mejor para comparar fechas en oracle es utilizar el to_char, ya que puedes decirle el formato de la variable que pasas a char, por ejemplo:
to_char(columna,'dd/mm/yyyy')='14/08/2003'.
Espero que te haya servido y que me haya explicado bien.
Te aconsejo que uses:
select * from TABLA where COLUMNA=to_date('14/09/03','dd/mm/yyyy');
select * from TABLA where COLUMNA=to_date('14/09/03','dd/mm/yyyy');
