Re: Consulta Fechas y between

From: Carlos Bazán <infobaz(at)vtr(dot)net>
To: pgsql-es-ayuda(at)postgresql(dot)org
Cc: Miguel Angel Hernandez Moreno <miguel(dot)hdz(dot)mrn(at)gmail(dot)com>, "Eduardo Arenas C(dot)" <edomax(at)gmail(dot)com>, Fernando Siguenza <fsigu(at)hotmail(dot)com>
Subject: Re: Consulta Fechas y between
Date: 2011-01-28 16:29:19
Message-ID: 201101281329.19408.infobaz@vtr.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Yo creo que lo que hay que hacer es "castear" el campo a examinar según el
formato que se requiere.

Creo que debería ser:
SELECT * FROM campanas WHERE fecha_inicio::DATE >= current_date AND
fecha_fin::DATE < current_date

Saludos

Carlos Bazán

On Vie 28 Ene 2011 13:13:17 Miguel Angel Hernandez Moreno escribió:
> prueba con
>
> select * from campanas
> where fecha_inicio>=current_date and fecha_fin<current_date+1
>
> current_date = NOW()::date
>
> te da el dia de hoy, sin horas entonces la traduccion seria,
> "selecciona todo de la tabla campara cuando mi fecha de inicio sea
> mayor o igual al dia de hoy a las 0 horas y menor al dia de mañana
> a las 0 horas"
>
> con eso cumples el diagnostico de la seleccion de 28 de enero sin
> importar la hora que tengan los registros
>
> El 28 de enero de 2011 06:48, Eduardo Arenas C. <edomax(at)gmail(dot)com> escribió:
> > Fernando, para que tu consulta quede mas dinamica, y siempre que tengas
> > la fecha de tu servidor bien configurada (al dia) puedes ocupar la
> > funcion now() de postgresql que te dará la fecha actual.
> >
> > select * from campanas where now()::date between fecha_inicio and
> > fecha_fin::date
> >
> > la probe con una tabla similar que tengo en mis sistemas y funciona.
> > espero te sirva.
> >
> > saludos
> > edox
> >
> >
> > 2011/1/28 Manuel Paillafil <manuel(at)radiohead(dot)cl>
> >
> > Ninguna de las 2 querys te funcionó?
> >
> >> El 28 de enero de 2011 02:13, Fernando Siguenza
<fsigu(at)hotmail(dot)com>escribió:
> >> Gracias Manuel,pero el campo fecha_inicio y fech_final es de tipo
> >>>
> >>> timespan.
> >>> Como haria para obtener solo el date de ese campo?
> >>>
> >>> Saludos
> >>>
> >>> Fernando
> >>>
> >>> *From:* Manuel Diego <manuel(at)radiohead(dot)cl>
> >>>
> >>> *Sent:* Thursday, January 27, 2011 11:00 PM
> >>> *To:* Fernando Siguenza <fsigu(at)hotmail(dot)com>
> >>> *Cc:* Foro Postgres <pgsql-es-ayuda(at)postgresql(dot)org>
> >>> *Subject:* Re: [pgsql-es-ayuda] Consulta Fechas y between
> >>>
> >>> Seguro que el campo fecha de inicio es un campo DATE?
> >>>
> >>> Prueba con esto
> >>>
> >>> select * from campanas
> >>>
> >>> where fecha_inicio BETWEEN '2011-01-25'::DATE AND '2011-01-25'::DATE
> >>>
> >>> también con
> >>>
> >>> select * from campanas
> >>>
> >>> where fecha_inicio::DATE BETWEEN '2011-01-25'::DATE AND
> >>> '2011-01-25'::DATE
> >>>
> >>> El 28-01-2011, a las 0:51, Fernando Siguenza escribió:
> >>> Amigos como estan, queria ver si me pueden ayudar tengo una tabla con
> >>>
> >>> dos columnas de tipo timespan, y tengo insertado esta informacion
> >>>
> >>> id fecha_inicio Fecha_final observacion modulo 1 25/01/2011 23:44
> >>> 25/01/2011
> >>>
> >>> 23:44 xxx C 2 25/01/2011 23:44 25/01/2011 23:44 xxx C 3 26/01/2011
> >>> 0:00 26/01/2011 0:00 para l a semnaa 3 C 4 26/01/2011 0:00 26/01/2011
> >>> 0:00 para l a semnaa 3 C 5 26/01/2011 0:00 26/01/2011 0:00 C 6
> >>> 27/01/2011 0:00 28/01/2011 0:00 C 8 26/01/2011 0:00 26/01/2011 0:00
> >>> vv C
> >>>
> >>> Ahora lo que quiero es obtener a que registro corresponde el dia
> >>> actual, es decir si hoy es el 27 de enero del 2011, entonces deberia
> >>> obtener el registro numero 6, si fuera el 25 deberia salir el registro
> >>> numero 1 y el 2, para esto hago la siguiente consulta.
> >>>
> >>> select * from campanas
> >>> where date('2011-01-25')>=fecha_inicio and
> >>> date('2011-01-25')<=fecha_fin
> >>>
> >>> select * from campanas
> >>> where date('2011-01-25') between fecha_inicio and fecha_fin
> >>>
> >>> Pero ninguna me da resultados, no se que puede estar mal aqui, de igual
> >>> forma haciendo con timespan
> >>>
> >>> select * from campanas
> >>> where timestamp '25-01-2011 00:00:00' between fecha_inicio and
> >>> fecha_fin
> >>>
> >>> No obtengo resultados, lo que quiero es simplemente poder obtener el
> >>> registro al que corresponde la fecha actual, sin tomar en cuanta las
> >>> horas.
> >>>
> >>> Como deberia hacer para obtener lo que necesito,
> >>> Gracias por la ayuda
> >>>
> >>> Fernando
> >>>
> >>>
> >>>
> >>> ------------------------
> >>> *Manuel Diego Paillafil Gamboa*
> >>> manuel(at)radiohead(dot)cl
> >>> Móvil: 06 - 801 60 24
> >>
> >> --
> >> *Manuel *Diego *Paillafil *Gamboa
> >> manuel(at)radiohead(dot)cl
> >> *Móvil: *
> >> *06 - 801 60 24
> >> Hogar: 02 - 785 84 60*

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Mariano Reingart 2011-01-28 17:51:35 Re: Centralizar Datos
Previous Message Miguel Angel Hernandez Moreno 2011-01-28 16:13:17 Re: Consulta Fechas y between