ESTE E O JEITO CERTO - PESQUISA DE DATAS

ADRIANOM 18/01/2011 23:57:57
#362676
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[Ô]

?
LLAIA 19/01/2011 00:53:00
#362680
Resposta escolhida
A data exemplo aqui é 20 de janeiro de 2003, vc pode usar:

[ô]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[Ô]
SAMUKA 19/01/2011 08:23:11
#362687
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
ADRIANOM 19/01/2011 09:01:38
#362693
As malditas aspas... elas me perseguem ... me perseguem mesmo.. a maioria dos meus erros nos códigos são as aspas....
Mas LLAIA... Obrigado!!!
Tópico encerrado , respostas não são mais permitidas