ESTE E O JEITO CERTO - PESQUISA DE DATAS
Usando o firebird e vb6
Esyte é o jeito certo de realizar uma pesquisa entre datas...
[Ô]SELECT * FROM FUNCIONARIOS WHERE ADMISSAO between [Ô] & Format(txtDtInicial, [Ô]yyyy/mm/dd[Ô]) & [Ô] And [Ô] & Format(txtDtFinal, [Ô]yyyy/mm/dd[Ô]) & [Ô] ORDER BY ADMISSAO[Ô]
?
Esyte é o jeito certo de realizar uma pesquisa entre datas...
[Ô]SELECT * FROM FUNCIONARIOS WHERE ADMISSAO between [Ô] & Format(txtDtInicial, [Ô]yyyy/mm/dd[Ô]) & [Ô] And [Ô] & Format(txtDtFinal, [Ô]yyyy/mm/dd[Ô]) & [Ô] ORDER BY ADMISSAO[Ô]
?
A data exemplo aqui é 20 de janeiro de 2003, vc pode usar:
Repare que existem 3 tipos de separadores. Os separadores vai orientar onde o firebird procura os elementos a data. Passe a data no formato desejado na consulta entre aspas simples como se fosse um texto. No seu código como vc tá usando /, vmos tr que mudar o Format.
[ô]01/20/2003[ô]
[ô]20.01.2003[ô]
[ô]20-jan-2003[ô]
[ô]20-january-2003[ô]
[ô]2003-01-20[ô]
Repare que existem 3 tipos de separadores. Os separadores vai orientar onde o firebird procura os elementos a data. Passe a data no formato desejado na consulta entre aspas simples como se fosse um texto. No seu código como vc tá usando /, vmos tr que mudar o Format.
[Ô]SELECT * FROM FUNCIONARIOS WHERE ADMISSAO between [ô][Ô] & Format(txtDtInicial, [Ô]mm/dd/yyyy[Ô]) & [Ô][ô] And [ô][Ô] & Format(txtDtFinal, [Ô]mm/dd/yyyy[Ô]) & [Ô][ô] ORDER BY ADMISSAO[Ô]
CUIDADO !!!!
Não sei se no firebird acontece isso ...
Qdo vc faz pesquisas usando o Between no Access, e no seu banco de dados, vc guarda a data completa (dd/MM/yyyy hh:mm), é necessário vc colocar a hora inicial e hora final tb, caso contrario a consulta ignorará todos os dados da data final cujo hora seja superior a 00:00
Exemplo de registros na tabela
01/01/2010 15:30
15/01/2010 12:00
30/01/2010 23:50
31/01/2010 01:30
Se vc consultar usando o between entre 01/01/2010 e 31/01/2010 a ultima data não será retornada pois na consulta não foi especificado o horario que por padrão será 00:00
Não sei se no firebird acontece isso ...
Qdo vc faz pesquisas usando o Between no Access, e no seu banco de dados, vc guarda a data completa (dd/MM/yyyy hh:mm), é necessário vc colocar a hora inicial e hora final tb, caso contrario a consulta ignorará todos os dados da data final cujo hora seja superior a 00:00
Exemplo de registros na tabela
01/01/2010 15:30
15/01/2010 12:00
30/01/2010 23:50
31/01/2010 01:30
Se vc consultar usando o between entre 01/01/2010 e 31/01/2010 a ultima data não será retornada pois na consulta não foi especificado o horario que por padrão será 00:00
As malditas aspas... elas me perseguem ... me perseguem mesmo.. a maioria dos meus erros nos códigos são as aspas....
Mas LLAIA... Obrigado!!!
Mas LLAIA... Obrigado!!!
Tópico encerrado , respostas não são mais permitidas