Ir para conteúdo

Arquivado

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

Fagner Dos Santos

Exibir somente meses em um intervalo de datas

Recommended Posts

Calma é assim mesmo... faltou a tralha...

Veja como tem que estar...

 

vSql = "SELECT * FROM TAB_ATUALIZAR_BRASFELS WHERE data between #"&var_datai&"# and #"&var_dataf&"#"

 

Teste ai...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Calma é assim mesmo... faltou a tralha...

Veja como tem que estar...

 

vSql = "SELECT * FROM TAB_ATUALIZAR_BRASFELS WHERE data between #"&var_datai&"# and #"&var_dataf&"#"

 

Teste ai...

meu codigo sql

vSql = "select * from tab_atualizar_brasfels where data between #"&var_datai&"# and #"&var_dataf&"#"
set myrst = server.createObject("ADODB.Recordset")
myRst.Open vSql, conn, 3,3

resposta do servidor:

Microsoft JET Database Engine erro '80040e07'

Erro de sintaxe na data na expressão de consulta 'data between ## and ##'.

gustavo tem algo haver o fato do segundo response.write nao exibir nada depois de aplicada a função invertedata??

 

var_datai = request.form("datai")
var_dataf = request.form("dataf")
Function invertedata(data)
d = day(cdate(data))
m = month(cdate(data))
a = year(cdate(data))
invertdata = m & "/"& d & "/" & a
end function
var_datai = invertedata(var_datai)
var_dataf = invertedata(var_dataf)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, você deve estar fazendo a consulta com a data no formato errado, tenta colocar essa função na data quando faz a consulta SQL:

Function FdataMysql(Data)
	If Data <> "" Then
		dia = day(data)
		if dia < 10 then
			dia = "0"&dia
		end if
		mes = month(data)
		if mes < 10 then
			mes = "0"&mes
		end if
		FdataMysql = year(data)&"-"&mes&"-"&dia
	End if
End Function

na instrução SQL faz assim:

vSql = "select * from tab_atualizar_brasfels where data between #"&FdataMysql(var_datai)&"# and #"&FdataMysql(var_dataf)&"#"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Calma é assim mesmo... faltou a tralha...

Veja como tem que estar...

 

vSql = "SELECT * FROM TAB_ATUALIZAR_BRASFELS WHERE data between #"&var_datai&"# and #"&var_dataf&"#"

 

Teste ai...

Gustavo agora deu certo!!! sabe onde estava o erro na função invertedata e invertdata em cima estava com a letra "e" e embaixo nao estava ou seja nao estava aplicando a função!!

agora mais uma perguntas:

a pesquisa so da exata qnd coloco no formato d/d/aaaa se eu colocar dd/mm/aaaa da errado nao lista tds

é isso mesmo Fagner estou tentando passar para ela esse esquema mas eu acho que agora vai!!

é isso ai!!

Gustavo foi mal perdi um dia da sua atualização escrevi o post so nao cliquei em responder, rsrs

mas como vc bem falou deu certo so cai naquela situação que descrevi acima se eu pesquisar com d/m/aaaa(1/7/2014) fica perfeito mas se eu pesquisar com dd/mm/aaaa(01/07/2014) nao lista todos os campos.

Mas de qualquer maneira mt obrigado a todos pelo o que já aprendi com vocês, sei que é bem mais trabalhoso colocar a solução e explicar mas explicando vc ensina e com isso posso repassar o conhecimento e nao so copiar ecolar a resposta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

estranho pois é só uma formatação 01/07/2014 não faz diferença com 1/7/2014 mas verifique com o isdate assim

 

var_datai = request.form("datai")
var_dataf = request.form("dataf")
if isdate(var_datai) = false or isdate(var_dataf) = false then
response.write "O parametro da data inicial ou a data final não foi identificado como data!"
response.end
end if
boa observação copiar e colar pode até resolver mas é paleativa pois não aprende por que quando aprendemos tudo a frente fica mais fácil!! é assim mesmo!!
sucesso!

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

estranho pois é só uma formatação 01/07/2014 não faz diferença com 1/7/2014 mas verifique com o isdate assim

 

var_datai = request.form("datai")
var_dataf = request.form("dataf")
if isdate(var_datai) = false or isdate(var_dataf) = false then
response.write "O parametro da data inicial ou a data final não foi identificado como data!"
response.end
end if
boa observação copiar e colar pode até resolver mas é paleativa pois não aprende por que quando aprendemos tudo a frente fica mais fácil!! é assim mesmo!!
sucesso!

 

o que essa função faz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa função retorna true ou false

 

a = isdate("teste")

 

a será = false

 

b = isdate("1/7/2014")

 

b será = true

 

01/07/2014 é a mesma coisa que 1/7/2014 e se o ano for omitido o sistema coloca for usado a função cdate

 

c = cdate("1/7")

 

c será = "1/7/2014"

 

att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz a consulta direta na SQL, usando DateAdd, DateDiff etc

 

 

"SELECT distinct produtos FROM linhas WHERE fim BETWEEN '"&formatadata(date)&"' AND '"&formatadata(DateAdd("m",6,Date))&"'

 

mas estando formatado corretamente só usar

 

"SELECT order_id, shopper_id, date_entered, total, status FROM store_receipt
WHERE date_entered BETWEEN '" & strData1 & "' AND '" & strData2 & "' ORDER BY date_entered DESC"

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.