Ir para conteúdo

POWERED BY:

Arquivado

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

Cesão

Comparação

Recommended Posts

Olá amigos... tenho o seguinte código:

 

<%  AbreConexao  data = CSTR(date())  SQL = "Select distinct numero_pedido, id_cliente, data, status_compra from pedidos where status_compra='concluido' or status_compra='fechado' and data='"&data&"' order by numero_pedido DESC"  set pedidos = Conexao.Execute(SQL)  %>

O problema é o seguinte... o campo "data" na verdade contem data e hora (exemplo: 12/12/2005 20:15:16), mas a variavel data é apenas a data...

 

Eu preciso selecionar todos os campos em que a data é igual a variavel, mas ele nao deixa eu comparar por causa da hora... jah tentei colocar (data LIKE '"&data&"'), mas nao deu certo tbm...

 

O que preciso fazer para poder mostrar todos os campos com a data atual, mas deixando a hora "de lado"?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na SQL use:

SELECT * FROM tabela WHERE Date(campo) = #suadata#;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na SQL use:

SELECT * FROM tabela WHERE Date(campo) = #suadata#;

Eu tentei isso e nao deu certo... teria como você inserir esse jeito no meu código ali em cima?Pq nao sei o que fiz de errado, mas nao deu certo nao...

Compartilhar este post


Link para o post
Compartilhar em outros sites
Select distinct numero_pedido, id_cliente, data, status_compra from pedidos where status_compra='concluido' or status_compra='fechado' and DATE(data)=#"& data &"# order by numero_pedido DESC;

Claro que estou acreditando que o campo data é do tipo DATA mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao sei o que acontece, mas nao funciona... ele dah esse erro:Tipo de erro:Microsoft JET Database Engine (0x80040E14)Número incorreto de argumentos usados com a função na expressão de consulta 'status_compra='concluido' or status_compra='fechado' and DATE(data)=#1/12/2005#'.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... pelo que eu entendi você tem um campo com a data e a hora... naum é??? tipo: 12/12/2005 20:15:16

 

bom... pra você procurar um valor tipo: 12/12/2005

você precisa fazer como você tentou mesmo... com o LIKE... pois ele vai buscar alguma parte que contenha esse valor que você está passando...

agora... o campo aonde está armazenada a data tem que está do tipo Texto...

 

agora cuidado qnd trabalha com data desse jeito... pq pode ser por exemplo que você tenha no banco um valor de data do tipo... 12/01/2005 20:15:16

e usando a funça Date() como você está usando... pode ser que retorne um valor do tipo: 12/1/2005

dae.... o like nunca vai achar essa data no banco...

 

entendeu...???

 

por isso é importante que você padronize o formato da data...

acoselho como já disse... deixar o campo do tipo texto e a variavel data tb... como é o que está acontecendo...

dê uma olhada nesse tópico que escrevi... lá tem umas funçoes que pode te ajudar com isso...

http://forum.imasters.com.br/index.php?showtopic=154604

 

e a sua SQL vai ficar assim....

SQL = "Select distinct numero_pedido, id_cliente, data, status_compra from pedidos where status_compra='concluido' or status_compra='fechado' and data LIKE '"&data&"' order by numero_pedido DESC"

 

Boa Sorte!!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já sou partidário de que Datas deves ser inseridas em campos do tipo DATA mesmo, um pouco de pesquisa e se aprende que o formato do access/SQLServer é mm/dd/aaaa, MySQL aaaa-mm-dd. Mas isso também vai de cada um.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu tambem ...data é data e texto é texto... alem da economia de memoria e performance fica mais limpo o codigo...voce deve verificar o padrao de data usadona pior das hipoteses voce concatena dia mes e ano no select pra formar sua data

Compartilhar este post


Link para o post
Compartilhar em outros sites

O meu campo está em DATA mesmo, db Access e o formato está em Data Geral (12/12/2005 12:15:30)!Eu queria poder buscar apenas a parte da data, sem a hora...por exemplo... vamos dizer que eh um forum... varios posts foram enviados hoje (2/12/2005), mas em horarios diferentes, certo? eu gostaria de listar todos que foram enviados HOJE, independente da hora... eh isso...Como ficaria minha SQL?

Compartilhar este post


Link para o post
Compartilhar em outros sites

dois modos veja o que mais lhe agrada

SELECT DATA FROM TABELA WHERE DATA BETWEEN Date() & " 00:00:00" AND Date() & " 23:59:59";

SELECT DATA FROM TABELA WHERE DAY(DATA)  = DAY(Date()) AND MONTH(DATA)  = MONTH(Date()) AND YEAR(DATA)  = YEAR(Date());

Compartilhar este post


Link para o post
Compartilhar em outros sites

dois modos veja o que mais lhe agrada

SELECT DATA FROM TABELA WHERE DATA BETWEEN Date() & " 00:00:00" AND Date() & " 23:59:59";

SELECT DATA FROM TABELA WHERE DAY(DATA)  = DAY(Date()) AND MONTH(DATA)  = MONTH(Date()) AND YEAR(DATA)  = YEAR(Date());

Os dois deam falha aki... nao sei mais o que fazer,....

Compartilhar este post


Link para o post
Compartilhar em outros sites

os dois eu testei e funcionou...como esta seu codigo???

Compartilhar este post


Link para o post
Compartilhar em outros sites

os dois eu testei e funcionou...como esta seu codigo???

Eu to deixando meu código assim:
<%  AbreConexao  data = date()  SQL = "Select distinct numero_pedido, id_cliente, data, status_compra from pedidos where status_compra='concluido' or status_compra='fechado' and data LIKE '"& data &"' order by numero_pedido DESC"  set pedidos = Conexao.Execute(SQL)  %>
Pq assim pelo menos a pagina nao dah falha... o estranho eh que ele nao mostra nenhum resgitro... eh como se ele nao achasse nada!Mas quando eu testo os cósigos que você me passou da erro na página... mto estranho!

Compartilhar este post


Link para o post
Compartilhar em outros sites

como esta sua consulta com os codigos que te passei inclusive com seus campos... e ainda qual o erro que ta dando...voce dizer que tem erro não ta ajudando muito pois pode ser um errinho ou um "errão", égua isto existe ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tentei fazer assim:

 

<%  AbreConexao  data = date()  SQL = "Select numero_pedido, id_cliente, data, status_compra from pedidos where data BETWEEN '"& data &"' and status_compra='concluido' or status_compra='fechado' order by numero_pedido DESC"  set pedidos = Conexao.Execute(SQL)  %>

Se os resgistros estão todos com status_compra = fechado ele dah certo... mas se algum está diferente (concluido) ele dah erro...

Além disso, ele mostra todos os registros do DB, mesmo que a data nao seja a atual...

 

E o erro é:

 

Tipo de erro:

Microsoft JET Database Engine (0x80040E07)

Tipo de dados imcompatível na expressão de critério.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o db é access??tente assim

SQL = "SELECT numero_pedido, id_cliente, data, status_compra FROM pedidos WHERE (data BETWEEN "& data &" 00:00:00 and "& data &" 23:59:59) and status_compra='concluido' or status_compra='fechado' order by numero_pedido DESC"

se der erro tente assim com os #

SQL = "SELECT numero_pedido, id_cliente, data, status_compra FROM pedidos WHERE (data BETWEEN #" & data & " 00:00:00# and #" & data & " 23:59:59#) and status_compra='concluido' or status_compra='fechado' order by numero_pedido DESC"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usei o seu método.. ele funciona quando eu uso com # mesmo...mas continua dando o MESMO erro... por exemplo... ele ainda lista registros com datas diferentes da atual...e parece que ele está se confundindo com a ordem status_compra='fechado' or status_compra='concluido', pois quando eu coloco:status_compra='concluido' or status_compra='fechado' and (data BETWEEN #" & data & " 00:00:00# and #" & data & " 23:59:59#)Ele soh lista os registros que estao com status_compra='concluido'... e se eu coloco(data BETWEEN #" & data & " 00:00:00# and #" & data & " 23:59:59#) and status_compra='concluido' or status_compra='fechado'Ele soh lista os registros que estao com status_compra='fechado'...E não importa a ordem, ele continua listando registros com datas diferentes da atual

Compartilhar este post


Link para o post
Compartilhar em outros sites

alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não sei o que ta acontecendo pois os dois jeitos que testei funcionou...tem certeza que o resto da sua query ta fazendo o que deveria???

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.