Utilizamos cookies propias y de terceros. Al navegar entendemos que aceptas el uso de cookies. +Info.
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki
Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - Extraer año y realizar filtro en Oracle
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information Extraer año y realizar filtro en Oracle

Publicar nuevo tema Responder al tema
Foros de discusión » Oracle Database, motor de base de datos profesional   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: Extraer año y realizar filtro en Oracle Responder citando

Estoy realizando una consulta SQL en Oracle y necesito obtener el año de una fecha y realizar un filtro con él, en concreto necesito sacar determinados registros cuyo año de la fecha de factura sea superior a 2007.

¿Cómo extraigo el año de una fecha en Oracle? he conseguido hacerlo con la función TO_CHAR de la siguiente forma:

Código:

select to_char(f.Fecha,'year') anoFactura
from facturas f


Y obtiene el año correctamente, pero si intento filtrar por el año de la siguiente forma:

Código:

select to_char(f.Fecha,'year') anoFactura
from facturas f
where to_char(f.Fecha,'year') >= 2007


Me da este error:

---------------------------
AjpdSoft Administración Bases de Datos
---------------------------
General SQL error.

[Oracle][ODBC][Ora]ORA-01722: invalid number.
---------------------------
Aceptar
---------------------------
MensajePublicado:
Lun May 03, 2010 6:55 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Extraer año y realizar filtro en Oracle Responder citando

varios escribió:
Estoy realizando una consulta SQL en Oracle y necesito obtener el año de una fecha y realizar un filtro con él, en concreto necesito sacar determinados registros cuyo año de la fecha de factura sea superior a 2007.

¿Cómo extraigo el año de una fecha en Oracle? he conseguido hacerlo con la función TO_CHAR de la siguiente forma:

Código:

select to_char(f.Fecha,'year') anoFactura
from facturas f


Y obtiene el año correctamente, pero si intento filtrar por el año de la siguiente forma:

Código:

select to_char(f.Fecha,'year') anoFactura
from facturas f
where to_char(f.Fecha,'year') >= 2007


Me da este error:

---------------------------
AjpdSoft Administración Bases de Datos
---------------------------
General SQL error.

[Oracle][ODBC][Ora]ORA-01722: invalid number.
---------------------------
Aceptar
---------------------------


La función: to_char(f.Fecha,'year') te obtendrá el año de la fecha indicada pero en texto, no en número. Por este motivo te da el error. Cambia tu SQL por la siguiente:


Código:

select to_char(f.Fecha,'YYYY') anoFactura
from facturas f
where to_char(f.Fecha,'YYY') >= 2007


y verás que te funciona, también puedes utilizar esta otra:

Código:


select to_char(f.Fecha,'YYYY') anoFactura
from facturas f
where EXTRACT(Year FROM f.Fecha >= 2007
MensajePublicado:
Lun May 03, 2010 6:57 am
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » Oracle Database, motor de base de datos profesional  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A