Ver Mensaje Individual
  #4  
Antiguo 26-03-2009
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Reputación: 23
ContraVeneno Va por buen camino
con la primer opción sí hay que tener cuidado con la hora. Pero bastaría con ponerle la hora 00:00 a un datetimpicker y la hora 23:59 al otro y con eso ya no habría problema.

Con la conversión a cadena utilizando CONVERT, tampoco hay problema, ya que el estilo 112 de SQL Server no considera la hora.

Con las funciones Year y Month de SQL Server tampoco importa la hora:

Código Delphi [-]
uses DateUtils;
...
 SQL.Add('where Year(Fecha) = :Year and Month(Fecha) between :MesInicio and :mesFin');
Parameters.ParamByName('Year').Value := YearOf(UnDateTimePicker.Date);
Parameters.ParamByName('MesInicio').Value := MonthOf(UnDateTimePicker.Date);
Parameters.ParamByName('mesFin').Value := MonthOf(UnDateTimePicker.Date);
El problema con esta forma es cuando se queire consultar de diciembre de un año a un mes de otro año...

como verás, hay muuuuuuuuuchas opciones.

yo prefiero esta:
Código Delphi [-]
...
 SQL.Add('Where Fecha between :FechaInicio and :FechaFin');
...
 parameters.parambyname('FechaInicio').Value := UnDateTimepIcker.Date; 
parameters.parambyname('FechaFin').Value := OtroDateTimepIcker.Date;
poniendo la hora 00:00 a un datetimpicker y la hora 23:59 al otro
__________________

Responder Con Cita