Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Comparación de Fechas (https://www.clubdelphi.com/foros/showthread.php?t=22531)

sierraja 17-06-2005 21:17:43

Comparación de Fechas
 
Hola foristas,

He tratado de comparar las siguientes fechas:

el componente dateTimePciker1 y el campo de una base de datos en interbase que fue declarado como DATE y al momento de compararlo hago lo siguiente:

if ClienDataSet.CampoFecha.AsDateTime>=DateTimePciker1.Date then ejecute

No entiendo ¿que pasa? y ¿por qué? :confused:

Gracias por su atención.....

delphi.com.ar 17-06-2005 21:19:54

¿cuál es el problema?... me parece que te faltó explicar algo, o verdaderamente el viernes ya me cayó pesado

sierraja 17-06-2005 21:28:07

Comparación de Fechas
 
La comparación:

if ClienDataSet.CampoFecha.AsDateTime>=DateTimePciker1.Date then ejecute

El ejecute siempre se cumple aunque el CampoFecha.AsDateTime sea menor que el DateTimePicker1.Date, es decir, tengo fechas menores en la BD que la suministrada por el DateTimePciker1.date y siempre ejecuta el Then.

Disculpas por mi falta práctica para exponer los problemas.

kukinn 17-06-2005 21:56:44

Hola,

Te encuenta que DateTimePciker1.Date está cogiendo la fecha+la hora. Para que compare solo la fecha debes de poner trunc(DateTimePciker1.Date)

delphi.com.ar 17-06-2005 22:07:34

Cita:

Empezado por kukinn
Te encuenta que DateTimePciker1.Date está cogiendo la fecha+la hora. Para que compare solo la fecha debes de poner trunc(DateTimePciker1.Date)

Si esta en modo fecha, solo toma la fecha. Y en el caso que tome fecha y hora, igualmente tendría que evaluarlo bien.

Cita:

Empezado por sierraja
El ejecute siempre se cumple aunque el CampoFecha.AsDateTime sea menor que el DateTimePicker1.Date, es decir, tengo fechas menores en la BD que la suministrada por el DateTimePciker1.date y siempre ejecuta el Then.

Dudo que se comparen mal las fechas... ¿Estas recorriendo el DataSet o estas preguntando siempre el por el mismo registro?

Agrega en la línea anterior a la evaluación:
Código Delphi [-]
  OutputDebugString(PChar(DateTimeToStr(ClienDataSet.CampoFecha.AsDateTime) +
                    ' >= ' +
                    DateTimeToStr(DateTimePciker1.Date)))
y fíjate en {View \ Debug Windows \ Event Log} si estas en lo cierto.

Saludos!

Crandel 19-06-2005 06:56:20

Puedes probar de alguna de estas dos formas

Código Delphi [-]
if ClienDataSet.CampoFecha.AsFloat >=DateTimePciker1.Date then ejecute

o

Código Delphi [-]
if ClienDataSet.CampoFecha.AsDateTime >=DateTimePciker1.DateTime then ejecute


La franja horaria es GMT +2. Ahora son las 16:11:21.

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