Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Problema con Rango de Fecha (https://www.clubdelphi.com/foros/showthread.php?t=40144)

El_Raso 08-02-2007 07:20:14

Problema con Rango de Fecha
 
Que tal a Todos..

Tengo la siguiente consulta:
Código SQL [-]
select a.cuotanumero, a.FechaPago, a.montocuota, a.codigo, a.numero, b.fechainicial, b.fechafinal,
b.formapago, b.montoprestamo, c.ciudad, (c.nombre || " " || c.apellido) as NombreCliente,
c.telcasa, c.teltrabajo, c.apodo, d.NombreAbogado
from dprestamo a
left join hprestamo b on a.numero = b.numero
left join clientes c on a.codigo = c.codigo
left join abogados d on d.codigoabogado = b.codigoabogado
where a.FECHAPAGO between :fi  and  :ff
 Order By a.numero, a.CuotaNumero

Si a al campo a.fechapago le asigno la misma fecha no me trae ningun registro (y los hay en la DB) si le pongo un rango de dos dias si funciona.
Ej. si le pongo '02/28/2007' and '02/28/2007' no trae nada
si le pongo '02/28/2007' and '03/01/2007' me trae solo los del dia 28

Que estoy haciendo mal? Una mano necesito...

Nota: Uso Interbase 6.5 Dialect 1

kuan-yiu 08-02-2007 10:24:13

Seguro que es un problema de "redondeo". Las fechas en muchos casos indican más que el día, también la hora. Si sólo quieres quedarte con las fechas tienes que ignorar la parte decimal de la fecha. Yo uso un método poco elegante... pero funciona:

trunc(a.FECHAPAGO)

Lepe 08-02-2007 15:53:12

Primero habrá que ver como está definido el campo de fecha, si como DATE, TIMESTAMP, etc.

Después como mandas los parámetros a la consulta, si como fecha o como string.

Saludos

fjcg02 08-02-2007 23:27:59

El problema apunta a lo que comentan el resto de los compañeros. Cuando pones la fecha entre el 28/2/07 y 28/2/07 estas realmente preguntando los registros entre las fechas 28/2/07 a las 00:00:00 horas y el 28/2/07 a las 00:00:00 horas.
El otro caso es entre el 28/2/07 a las 00:00:00 y el 1/3/07 00:00:00 horas.
Por lo tanto o haces un cast como bien apuntan o añades la hora a las fechas; 00:00:00 a la primera y 24:00:00 a la segunda.

Un saludo

vtdeleon 09-02-2007 04:25:47

O Añades +1 a la fecha mayor:).

Saludos

El_Raso 09-02-2007 05:15:19

Gracias Muchachos por responder... termine sumandole uno a la mayor y funciona...


La franja horaria es GMT +2. Ahora son las 23:53:26.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi