Consulta en Query con fechas

194 views
Skip to first unread message

Anthony Campos

unread,
Feb 18, 2009, 11:40:19 AM2/18/09
to NHibernat...@googlegroups.com
Buenos dias, tengo una duda con respecto a un query que hago con rango de fechas

            hql = "From Cliente c  ";
            hql += "where c.FechaRegistro >= :fec2 And c.FechaRegistro <= :fec1 ";
            if (chkSoloCli.Checked == true)
            {
                hql += " And c.EstadoRegistro= :est  ";
            }
            hql += " Order By c.Codigo Asc ";

            IQuery qry = Ses.CreateQuery(hql);
            qry.SetString("fec1", fe_cli2.Value.Date);
            qry.SetString("fec2", fe_cli1.Value.Date);
            if (chkSoloCli.Checked == true)
            {
                qry.SetBoolean("est", true);
            }
            IList<Cliente> lst = qry.List<Cliente>();


La duda es que si por ejm en el campo c.FechaRegistro en la bd grabo fecha y hora no me sale ninguna data, pero para los que solo estan con fechas ahi si aparecen.. como puedo validar eso para que me permite ambos criterios al hacer mi qry ??

Derrepente estoy haciendo algo mal podrian ayudarme con eso ....

Gracias,

Anthony Campos

Diego Jancic

unread,
Feb 18, 2009, 11:47:30 AM2/18/09
to NHibernat...@googlegroups.com
Hola,
Empeza cambiando:

qry.SetDateTime(....);

el resto parece bien, pero fijate que esten bien los valores de hora
con los que estas comparando.
Tambien podes usar un between.

saludos

Anthony Campos

unread,
Feb 18, 2009, 11:54:20 AM2/18/09
to NHibernat...@googlegroups.com
Diego Jancic escribió:
Hola diego gracias pro tu rpta, si tambien probe asi como me dice con el setDateTime pero la cosa es que en mi data en la bd este campo es un tipo DateTime y hay grabaod registros con Fecha y Hora y hay registros de solo Fechas... esto ultimo si me jala la hacer el query pero con los de fecha y hora no me jala en el query....

Fabio Maulo

unread,
Feb 18, 2009, 12:14:30 PM2/18/09
to NHibernat...@googlegroups.com
Hay que arreglar la bergamotta que tenes en los datos o usar between

2009/2/18 Anthony Campos <stri...@gmail.com>



--
Fabio Maulo

Robertiño

unread,
Feb 18, 2009, 12:20:57 PM2/18/09
to NHibernate-Hispano
Proba en tracear el query que le esta llegando a la base de datos,
Intenta lanzar el query desde una consola o cliente de la BD para
descartar que no sea problema de datos.

On 18 feb, 14:14, Fabio Maulo <fabioma...@gmail.com> wrote:
> Hay que arreglar la bergamotta que tenes en los datos o usar between
>
> 2009/2/18 Anthony Campos <strike...@gmail.com>

Diego Jancic

unread,
Feb 18, 2009, 12:24:59 PM2/18/09
to NHibernat...@googlegroups.com
Cuando tiene solo fecha no significa que tenga solo fecha, significa
que la hora es 12:00.00 (por lo menos en SQL Server). Asi que fijate
que este bien la comparacion considerando eso. Casi seguro que es un
problema de datos, no de sql.

Anthony Campos

unread,
Feb 18, 2009, 1:02:15 PM2/18/09
to NHibernat...@googlegroups.com
Diego Jancic escribió:
Si justo me he dado cuenta que el problema es q cuando no se graba hora por defecto es 12:00:00 asi q por eso era lo q no me aparecia la data ... con el between tambien me podria solucionr este problema no  ??  si es asi mil gracias por sus respuestas...

Anthony Campos

Diego Jancic

unread,
Feb 18, 2009, 1:06:22 PM2/18/09
to NHibernat...@googlegroups.com
between es lo mismo en comportamiento, no se si hay alguna diferencia
en implementacion interna o de performance (no creo)
Reply all
Reply to author
Forward
0 new messages