Ir para conteúdo

POWERED BY:

Arquivado

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

asp.net

Problemas com o Between

Recommended Posts

Tenho a SP abaixo.

 

SP::::::::::::::::::::::::::::::

CREATE PROCEDURE relatorio

@data_inicial nchar(10), @data_final nchar(10) AS

 

Select chamados.unidade as agencia, fechamento.codigo as codigo, fechamento.dtconferencia as data_conferencia, fechamento.dtfatura as data_fatura, Sum(Convert(numeric(10,2),fechamento.valortotal)/100) as valor_total, fechamento.deslocamento as delocamento, fechamento.quantidade as quantidade

from fechamento inner join chamados on fechamento.codigo = chamados.codigo

Inner join agencias on agencias.codigo = chamados.unidade

where (fechamento.valortotal is not null) and (fechamento.valortotal <>" ") and (fechamento.codigo is not null) and (fechamento.dtfatura between @data_inicial and @data_final) and (fechamento.dtconferencia is not null) and (fechamento.dtconferencia <>" ")

group by chamados.unidade, fechamento.codigo, fechamento.dtconferencia, fechamento.dtfatura, fechamento.deslocamento, fechamento.quantidade

order by chamados.unidade

 

Que estou chamando pelo asp assim

Chamada::::::::::::::::::::::

relatorio = "exec relatorio @data_inicial='"&data_inicio&"', @data_final='"&data_final&"' " 'Onde data_inicio e data_final são as datas que serão usadas no between.

 

Abaixo está a imagem do resultado que estou tendo. Neste caso eu tinha utilizado como valores 01/05/2004 e 30/05/2004, mas pode-se perceber que ele retornou os valores do mes 3 e mes 4, a coluna da data que esta sendo usada é a terceira coluna da esquerda para a direita.

 

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sei que eh uma pargunta absurda... mas as vezes tem outro campo data evc se enganou...você ta fzd o beetween peloi campo DATAFATURA certo ???? entao... essa data q você mostra no relatorio eh o conteudo do campo DATAFATURA ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

soh uma observaçao...estranho ele exibir as dadas dessa forma... 22/03/2004 e 24/4/2004... se o campo está como data naum vou nem perguntar..huauh... q eh estranho eh... ele normalmente aceita de qq forma (dd/mm/aaaa, d/m/aaaa) mas qdo armazena sempre retorna num únicco formato...falow

Compartilhar este post


Link para o post
Compartilhar em outros sites

Também estranhei isso, normalmente eles (Acess e SQLServer) retornam sempre sem o "0" quando o valor de Dia e/ou Mês são inferiores a 10.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem como o campo não é data, e pelo que pude notar você quer pegar um mês, você pode tentar fazer o seguinte, na SQL coloque o campo "abraçado" por Month() e (se existir) um "transformador" de string para data. E use = no lugar do Between.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara agora eu estou com a seguinte estrutura.

.....

where (fechamento.conferido = 1) and (Convert(datetime(8),fechamento.dtconferencia,103) between Convert(datetime(8),@data_inicial,103) and Convert(datetime(8),@data_final,103)) and (fechamento.valortotal <> " ") and (fechamento.valortotal is not null) and (fechamento.dtfatura <> " ")

......

 

E tenho que trazer para o resultado todos os fechamento com data geral (dd/mm/yyyy) dentro do intervalo fornecido. O engraçado é que quando eu executo a SP pelo Query Analyzer fazendo assim

exec relatorio '20/03/2004', '21/04/2004' ' Comando dado pelo QA

ai ele me traz o período beleza, mas quando eu executo pelo ASP usando assim

 

relatorio = "exec relatorio @data_inicial = '"&data_inicial&"' , @data_final = '"&data_final&"' " ai dá erro, quer dizer ele me traz os fechamento tomando como parametro apenas o dia. Estou achando que seja algo em relação ao uso de aspas simples ou duplas.

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.