Ir para conteúdo

POWERED BY:

Arquivado

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

G23

Pesquisa entre datas ASP

Recommended Posts

Bom dia!

 

 

Estou com problemas para realizar um consulta entre datas no ASP. Meu banco é Access. E meu campo de datas está em formato de texto (não tenho como alterar pois já recebo da minha fonte assim). Mas também estou precisando desta seleção entre datas para campo que tem o formato da data/hora.

 

Vejam o código que estou usando:

sSQL = "SELECT * FROM tb_sdc_producao" & " WHERE data_owner >= cdate('" & dtInicio & "')" & " and  data_owner <= cdate('" & dtFim & "')" & " and status_sdc is not null"

	SQL = sSQL

	Set rstCliente = Server.CreateObject("ADODB.Recordset")
	rstCliente.Open SQL, conexao_sdc

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem uma tentativa que é colocar o CDATE na coluna, porém a consulta será mais lenta, se não funcionar com CDATE tente com FORMAT(coluna, 'DD/MM/YYYY'), acho que tem uma outra que é DATEVALUE(data)

 

sSQL = "SELECT * FROM tb_sdc_producao" & " WHERE cdate(data_owner) >= cdate('" & dtInicio & "')" & " and  data_owner <= cdate('" & dtFim & "')" & " and status_sdc is not null"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está ocorrendo ainda esse erro:

 

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

 

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

 

/aplicativos/sdc_express/sdc_default1.asp, line 91

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal

 

Consegui com o código:

Dim DtInicio
Dim DtFim

DtInicio = Trim(Request.form("DtInicio"))
DtFim = Trim(Request.form("DtFim"))


	set objconn=server.createobject("adodb.connection")
	conexao_sdc = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("sdc.mdb") & ""
	objconn.Open conexao_sdc
	Set rstCliente = objConn.Execute("SELECT * FROM tb_sdc_producao WHERE dataParaConclusao between #"&dtInicio&"# AND #"&dtFim&"# and situacao1 = 'ABERTO'")

Só tenho dois problemas:

 

 

O primeiro:

na minha base Access o formato data está dd/mm/aaaa. quando seleciono aq data inicial 01/04/2009 (01 de abril de 2009) e data final 02/04/2009 (02 de abril de 2009) está retornando o período 01 de janeiro de 2009 a 04 de fevereiro de 2009. O retorno dos registros estão vindo como se e formato no BD estivesse mm/dd/aaaa. Como corrigir para retornar dd/mm/aaaa?

 

 

O segundo problema:

 

Eu preciso que ao carregar nesses registros seja imprimido na tela o total de registros da consulta.

estou usando o código:

set rstCliente = Server.CreateObject("ADODB.recordset")
		rstCliente.Open sql,conexao_sdc,3,3  

								if not rstCliente.eof then
		response.write rstCliente.recordcount
		end if

 

Ou esse:

 

recordCount = rstCliente("ID_Focus")

								if not rstCliente.eof then
		response.write rstCliente.recordcount
		end if

e está retornando o valor -1 mesmo tendo carregado na consulta mais de mil registros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vinicius, obrigado pelo retorno. :)

 

Com relação ao session.lcid(1046) já tenho no início.

Eu utilizo um calendário para selecionar a data e mesmo que eu digite ocorre o problema.

 

 

Abs

Gilson

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fera... vou tentar te ajudar!

 

Em relação as datas, você deverá "jogar" no select no formato mm/dd/aaaa para ter o resultado desejado.

 

Tenta e avisa se deu certo.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se bem que ele falou que as datas não estão no formato data no bd...

se você usar uma mascara no input dessas datas, será que dá certo?

tipo um js que faça a mascara de dd/mm/aaaa isso no input, talvez de certo

 

<_<

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ja tive estes problemas com datas em banco de dados access? quer um conselho?? desiste heheh

 

quando precisar comparar datas, prefira usar o mysql e um banco de dados melhor

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Dia !

 

Tenho um sistema que busca no bd num intervalo de datas com bd access, vou fuçar minhas coisas em casa e amanha eu posto como fiz e tb detalhes sobre o formato usado no bd, acho q é texto, nao tenho certeza.

 

Abraços,

Vinicius Ianni

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Dia !

 

Tenho um sistema que busca no bd num intervalo de datas com bd access, vou fuçar minhas coisas em casa e amanha eu posto como fiz e tb detalhes sobre o formato usado no bd, acho q é texto, nao tenho certeza.

 

Abraços,

Vinicius Ianni

beleza Vinicius, obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Dia !

 

Conforme prometido, segue abaixo o esquema que utilizo:

 

no form que vai enviar as informações, note que tem uma chamada para um script js que ajuda a formatar o campo, o campo onde vai a data está por padrão desativado pq como tem várias opções de pesquisa, o padrão fica habilitado e os outros não quando se escolhe uma das outras opções, o padrão fica desabilitado e o escolhido fica habilitado, isso é feito via script js tb.

 

response.write "<input type='radio' name='radio' value='intdata' onclick='intdata();'>  Por intervalo de datas:<p>"
response.write "Data inicial  <input type='text' name='dataini' disabled='true' OnKeyUp='mascara_data(this.value)' mask='99/99/99'>  Data final:  <input type='text' name='datafim' disabled='true' OnKeyUp='masca_data(this.value)' mask='99/99/99'>"

 

pag que processa o form

depois de declarar as variaveis e capturar os valores vindo do form:

 

strprod = "select * from produtos where exibir=true and dataanu between '" &datain& "' And '" &datafi& "'"

 

Manda executar e exibir o resultado da forma que o projeto exige.

o campo dataanu está como campo texto de tamanho 12 no bd do access

 

Esse sistema é utilizado há cerca de 3 anos, e o cliente nunca reclamou de problemas na busca por intervalo de datas.

 

Abraços,

Vinicius Ianni

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.