Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Georges Langlois

Consulta de data no sql

Recommended Posts

Galera eu tô tentando fazer um consulta aqui no VB usando banco Access e comandos SQL.eu queria pegar valores entre duas datas, daí o q tenho feito é:Set rs = conn.Execute("Select Data,Item,Categoria,Valor from historico where Data BETWEEN #03/05/2005# AND #05/05/2005# ORDER BY Data", , adCmdText)mas tá com uns problemas estranhos, por exemplo, se eu por isso q tá ae não retorna nada...parece q só começa a funcionar quando o dia fica acima de 13, independente do mês...mas o banco de dados tem sim registros antes do dia 13...Dai eu tinha visto umas coisas sobre sql e parece q ele armazena ou trabalha com datas no formato 'yyyymmdd'mas eu não sei agora o que fazer, se alguem puder ajudar eu agradeço...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Putz eu tava testando aqui, dai aconteceu umas coisas mais estranhas..Digamos q meu banco tenha regitros desde 02/06/2006 até 14/06/2006.Daí se eu busco valor entre 02/06/2006 e 02/06/2006 até 05/06/2006 não retorna nada.Se eu busco entre 02/06/2006 e 06/06/2006 retorna valores certos.Se eu busco entre 02/06/2006 e 07/06/2006 até 12/06/2006 retorna todos valores.Se eu busco entre 02/06/2006 e 13/06/2006 pra cima retorna valores certos.Caramba q q acontece???

Compartilhar este post


Link para o post
Compartilhar em outros sites

data é um caso chato mesmo... nunca trabalhei com access, no sql server sempre uso passando neste formato yyyymmdd e não tenho problemas, no vb seria format(now, "yyyyMMdd")

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara...estou tendo este mesmo problema e estou descofiado de uma coisa....tenho 3 datas: 20/5/2006; 20/6/2006; 20/7/2006.Quando dou um select.....date < 2/6/2006 ele não retorna nada....Mas, se eu alterar o dia pelo mês e fizer a consulta < 6/2/2006 me retorna a data 20/5/2006....Acho que o Access trabalha com a data assim em consulta.(MM/DD/YYYY)Faça um teste e me diga se é isso realmente....no aguardo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então cara, usando o access eu não consgui fazer consultas usando o between, ai eu fiz assim

 

dsj.RecordSource = "Select * from Rep where r_datar >= #" & Format(txtdatai.Text, "mm/dd/yyyy") & "# and r_datar <= #" & Format(txtdataf.Text, "mm/dd/yyyy") & "#"

 

Teta ae !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, quando preciso fazer uma consulta num intervalo de datas com o access, o between não funciona...Abaixo uma instrução que usei num programa que fiz pra uma loja de roupas, na parte referente ao movimento do dia (observe o campo data):"Select CliNome,VenCliCod, ProdNome, VenProdCod, ProdPVenda from Cliente,Produto,Venda where Venda.VenCliCod = Cliente.CliCod and Venda.VenProdCod = Produto.ProdCod and Venda.VenData >= #" & Format(DtpDI.Value, "yyyy/MM/dd") & "# and Venda.VenData <= #" & Format(DtpDF.Value, "yyyy/MM/dd") & "#"O dtp é referente ao DateTimePicker que uso... espero que te ajude!ps: aí é o comando SQL só, ele eu executei num OleDBDataAdapter pra jogar num datatable :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom colega, nunca tive este problema, porém eu faço da seguinte maneira:

 

Abro minha conexão fazendo meu select e depois utilizo o FILTER no recordset tendo como parametros as datas digitadas em textbox's exemplo:

 

Dim cnncomando As New ADODB.CommandDim rs As New ADODB.RecordsetWith cnncomando	.ActiveConnection = cnnProjetos	.CommandType = adCmdText	.CommandText = " select * from projetos "	Set rs = .ExecuteEnd WithWith rs	 rs.Filter = "DATA >= '" & Txtdatainicial & "' and DATA <= '" & Txtdatafinal & "'"

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta o seguinte:Set rs = conn.Execute("Select Data,Item,Categoria,Valor from historico where Data BETWEEN format(#03/05/2005#, 'MM/DD/YYYY') AND format(#05/05/2005#,'MM/DD/YYYY') ORDER BY Data", , adCmdText)Se não funcionar tenta trocar ' por " e alterar o formato da data de MM/DD/YYY para DD/MM/YYYYEu apanhei um bom tempo, mas funcionou....

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho q deve ter alguma funçao no access pra você converter a data em string,,,no sql server eu sempre faço where "CONVERT(varchar,dDataEvento,103)='23/10/1984'" quando a consulta é por data inteira (dd/mm/aaaa).Outra coisa que tinha observado é que algumas linguagens quando convertem a data podem retornar da seguinte maneira (sempre em dd/mm/aaaa , ou quase isso) veja porque:>> 2/2/2007 >> no caso do Calendar1.SelectedDate.ToShortDateString() >> 12/2/2007 >> ..Calendar1.SelectedDate.ToShortDateString() >> 12/12/2007 >> ..Calendar1.SelectedDate.ToShortDateString()ou seja, nas colunas mes e dia os dias abaixo de 10 e meses abaixo de 10 eles retornam apenas uma casa, no caso eu uso c# e uso o "System.String.Format("{0:dd/MM/yyyy}", Calendar1.SelectedDate)" por exemplo, mais seguro...espero que tenha ajudado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.