Uma dica para os desenvolvedores, que assim como eu, também já tiveram essa grande dificuldade pela frente.
Eu possuo uma coluna do tipo Date no banco de dados e a aplicação alimenta-a com Data e Hora. O problema surge quando preciso num relatório filtrar os lançamentos num determinado período, e ao gerar no relatório vários lançamentos são ignorados, visto que a data deles tem horas diversas.
A solução para isso, utilizando componentes DBExpress, para comparar um intervalo entre duas datas foi a seguinte:
- 2 componentes TDateTimePicker da paleta Win32 (DTPckInicial e DTPckFinal);
- adicionar na propriedade Time do DTPckInicial: 00:00:01
- adicionar na propriedade Time do DTPckFinal: 23:59:59
- na bloco USES adicione SqltimSt;
- utilizar as 3 linhas do código abaixo ao filtrar os lançamentos compreendidos nas datas selecionadas nos dois componentes TDateTimePicker:
Query.SQL.Add(' AND ( CAMPO_TIPO_DATA BETWEEN :DATA_INI AND :DATA_FIM )');
Query.ParamByName('DATA_INI').AsSQLTimeStamp := DateTimeToSQLTimeStamp(DTPckInicial.DateTime);
Query.ParamByName('DATA_FIM').AsSQLTimeStamp := DateTimeToSQLTimeStamp(DTPckFinal.DateTime);
Conclusões
Notamos neste artigo a facilidade em se manipular campos DateTime,
inclusive os utilizando como parâmetros sem ignorar as horas,
utilizando a ferramente Delphi 7. Forte abraço e até o próximo tutorial.
inclusive os utilizando como parâmetros sem ignorar as horas,
utilizando a ferramente Delphi 7. Forte abraço e até o próximo tutorial.
--
Nenhum comentário:
Postar um comentário