PDA

Ver la Versión Completa : Problema al comparar DATETIME.


agu.aguilar
16-05-2016, 20:18:31
Buenas tardes a todos! Estoy modificando una aplicacion que requiere que dos componentes DateTimePicker guarden una fecha para realizar un filtrado sobre una tabla ADO entre los rangos de fecha que establecen los DateTimePicker.
El problema radica en que a la hora de comparar los dos valores que guardan los DateTimePicket (misma fecha) nunca son iguales.. la comparacion que hago es la siguiente:
if (dtpinicio.Date) = (dtpFin.Date) then
El otro problema es que al momento de realizar el filtrado sobre la tabla ADO tampoco funciona de forma correcta. Cito un ejemplo
Ambos DATETIMEPICKER tienen fecha '16/05/2016' lo cual necesitaria que me muestre solo los registros cuyo campo fecha sea igual a '16/05/2016'. Esto no se da, ya que no me muestra ningun campo con esa fecha (obviamente que en la BD existen registros con esa fecha). Dejo el codigo de filtrado:
qVistaHorasClientes.Close;
qVistaHorasClientes.Filter := 'fecha >= ' + DateToStr(auxfecha) + ' and Fecha <= ' + DateToStr(auxfecha2);
qVistaHorasClientes.Filtered := True;
qVistaHorasClientes.Open;
Utilizo bases de datos SQL Server. Muchas gracias de antemano!

Casimiro Notevi
16-05-2016, 23:04:40
Seguramente también están guardando la hora, por eso no coincide nunca.

orodriguezca
16-05-2016, 23:38:36
Ensaya la comparación de esta forma:
if Trunc(dtpinicio.Date) = Trunc(dtpFin.Date) then

En el filtro ensaya a colocar entre comillas sencillas el valor de la fecha:
qVistaHorasClientes.Filter := 'fecha >= ' + QuotedStr(DateToStr(auxfecha)) + ' and Fecha <= ' + QuotedStr(DateToStr(auxfecha2));