Fwd: 2 consultas acerca de fechas

From: "Jaime Casanova" <systemguards(at)gmail(dot)com>
To: Postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Fwd: 2 consultas acerca de fechas
Date: 2007-07-07 23:39:38
Message-ID: c2d9e70e0707071639u70ce04f9w65fa4cf4e36db3f2@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

---------- Forwarded message ----------
From: Miguel Rodríguez Penabad <penabad(at)gmail(dot)com>
Date: Jul 7, 2007 5:45 PM
Subject: Re: [pgsql-es-ayuda] 2 consultas acerca de fechas
To: Jaime Casanova <systemguards(at)gmail(dot)com>

El 7/07/07, Jaime Casanova <systemguards(at)gmail(dot)com> escribió:
> On 7/7/07, Daniel Soto <daniel(dot)soto2k(at)gmail(dot)com> wrote:
> >
> > Estoy haciendo una funcion la cual obtiene unos registros que se encuentren
> > entre cierto rango de fechas, por ejemplo desde el 07-05-2007 0:00:00 hasta
> > el 20-07-2007 23:59:59. El usuario solo ingresa la fecha como tal y el
> > sistema es quien le agrega la hora (en otras bases de datos, me asumia
> > siempre hasta 20-07-2007 0:00:00 por lo que los registros que hayan sido
> > creados dentro de ese dia quedaban fuera, ya que los registros se crean con
> > fecha y hora).
> >
>
> que tal where campo_timestamp::date between fecha_ini and fecha_fin y
> te olvidas de agregar horas
>

Aparte de estar completamente de acuerdo con Jaime en el uso de date y
between, que es
lo primero que se me ocurrió al leer tu mensaje:

Por un lado, yo usaría el tipo interval para "sumar horas":
fecha_ini + interval '23:59:59'

Por otro lado, el error que obtienes
ERROR: la función inventario.mi_funcion("unknown", "unknown",
"unknown") no es única at character 8
HINT: No se pudo escoger la función más adecuada. Puede desear
agregar conversiones explícitas de tipos.

Parece indicar que has creado varias functiones
"inventario.mi_funcion" con distintos tipos de parámetros.
Supongo que mi_funcion(varchar, date, date) y mi_funcion(varchar,
timestamp, timestamp)
Para evitar el error (aparte de que supongo que solo necesitas una
función y puedes eliminar la(s) otra(s), puedes hacer la llamada así:

select mi_funcion('01', '2007/07/07'::date,'2007/07/07'::date);
o
select mi_funcion('01', date '2007/07/07',date '2007/07/07');

Así Postgres sabrá qué función ejecutar.
Saludos
Miguel

--
Atentamente,
Jaime Casanova

"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
Richard Cook

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2007-07-08 00:00:57 Re: Presentación y petición de ayuda (phpPgAdmin)
Previous Message Jaime Casanova 2007-07-07 21:22:20 Re: Tamaño o dimension de un indice