marcus Gemeos Postado Dezembro 9, 2008 Denunciar Share Postado Dezembro 9, 2008 Pessoal,Eu gostaria de saber, como faço para um busca no sistema só listar pessoas por data? Ou seja, tem um registro que contem um campo chamado "vencimento", se a data cadastrada neste campo, for menor que a data atual, listasse (imprimisse...)Eu tenho já o comando de imprimir a data atual:VarData = "" & day(date) & "/" & month(date) & "/" & year(date) & ""Esse comando "captura" a data atual.Resumindo: Um sistema que listasse registros que tenha a data vencida!Abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Dezembro 9, 2008 Denunciar Share Postado Dezembro 9, 2008 Dá uma olhada nisso aqui: http://scriptbrasil.com.br/forum/index.php?showtopic=129289 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marcus Gemeos Postado Dezembro 9, 2008 Autor Denunciar Share Postado Dezembro 9, 2008 Não é bem isso... lá está listando registros por um período de data, eu gostaria de listar resgistros que seja menor que a data atual! :mellow: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Dezembro 9, 2008 Denunciar Share Postado Dezembro 9, 2008 Não...O segundo post (o do Rafael) fala exatamente disso !Ele lista as datas dentro de determinado períodoTente fazer assim:strsql = "Select * from tabela where campo_data<" & date(now()) & " order by campo_data"Qualquer coisa, posta aí ! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marcus Gemeos Postado Dezembro 9, 2008 Autor Denunciar Share Postado Dezembro 9, 2008 (editado) Jonathan,O código funcionou assim:sqlProd2 = "Select * from tabela where campo_data > " & date() & " order by campo_data"Na prática, a data do campo 5/12/2008 é menor do que a data atual (9/12/2008) então liste... você ver que o ">" foi invertido!E além do mais, o sistema ler a data sem o "0". Invés de 05/12/2008 é 5/12/2008.Também gostaria de saber, como faz, se alguém digitar o "0" no campo, e não cadastrar...?E além do mais, percebir que o código só ler o primeiro número, no caso "5/..."Abraços! Editado Dezembro 9, 2008 por marcus Gemeos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Spilki Postado Dezembro 9, 2008 Denunciar Share Postado Dezembro 9, 2008 Marcus, a primeira pergunta é: sua dúvida nesse link foi respondida: http://scriptbrasil.com.br/forum/index.php?showtopic=129770?se sim, retorne ao tópico e poste o código da forma correta, apresentando a solução para outros usuários que venham ter a mesma dúvida...Com relação a essa dúvida de agora o select deverá ser algo parecido com isso (adapte da forma que lhe convier):sql = " select * from sua_tabela where campo_data_bd < #" & (data) & "#" 'sendo data a data atual! se você quiser que pegue a data inclusive de hoje faça assim: sql = " select * from sua_tabela where campo_data_bd <= #" & (data) & "#" apartir daqui basta substituir o < por > para inverter a pesquisa... se quiser ordenar as datas em ordem crescente use: sql = " select * from sua_tabela where campo_data_bd < #" & (data) & "# order by campo_data asc" quanto ao fato da pessoa digitar algo no campo que não seja possivel o cadastro você tem como fazer alertas em javascript "proibindo" que o form seja submetido... aparecerá uma mensagem na tela para que o user corrija as informações necessárias e só então (se estiver tudo ok) o formulario será submetido... com relação ao 0 na frente dos numeros de 1 a 9 nas datas eu corrijo usando datepart para desmembrar a data em dia, mes e ano e depois coloco condicionais para agragar o zero... apenas um exemplo abaixo... ficará facil adaptar para o resto e tem muita coisa no google tb! dia = datepart ("d", data) mes = datepart ("m", data) ano = datepart ("yyyy", data) if dia < 10 then dia = "0"&dia end if response.write dia&"/"&mes&"/"&ano[]'s Rafael Spilki Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marcus Gemeos Postado Dezembro 10, 2008 Autor Denunciar Share Postado Dezembro 10, 2008 Olá Rafael,Por incrível que pareça, para listar resgistros que tenham a data menor que a data atual, invertir de "<" para ">" e deu certo!Tipo: campo_data > data atual. Então se hoje forem 10/12/2008 a data para ser listada tem que ser no máximo 09/12/2008. Isso porque invertir o sinal ">".E enquanto ao "0", eu quero removê-lo e não acrescentá-los!Obrigado por tudo!Marcus Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Spilki Postado Dezembro 10, 2008 Denunciar Share Postado Dezembro 10, 2008 Legal... q bom que resolveu...Vi que você postou dois tópicos quase iguais! um deles foi removido... Procure não repetir essa prática, ok?Bom... quanto ao fato de você ter tido que inverter o sinal... olha "logicamente" falando isso está errado... meu palpite?!? meu palpite é que suas datas estão sendo de certa forma invertidas... debug as suas datas e sua query com response.write e poste aqui os resultados para termos certeza de que esteja tudo certo, ok?quanto ao 0 não entendi exatamente o que você esta tentando fazer... se puder explicar melhor talvés eu tb possa te ajudar![]'s Rafael Spilki Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marcus Gemeos Postado Dezembro 10, 2008 Autor Denunciar Share Postado Dezembro 10, 2008 (editado) Olá amigo,Meu código está com bug:VarData = "" & day(date) & "/" & month(date) & "/" & year(date) & "" sqlProd = "Select * from clientes where dt_prox_venc < #" & VarData & "# order by dt_prox_venc"O campo "dt_prox_venc " está com dado 8/12/2008, mas não lista... só se seu invreter o sinal "<".E a VarDATA está imprimindo "10/12/2008"*Há desculpa pelo tópico duplicado! Editado Dezembro 10, 2008 por marcus Gemeos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Spilki Postado Dezembro 10, 2008 Denunciar Share Postado Dezembro 10, 2008 Tente três coisas:1) coloque session.lcid = 1046 no começo de seu código... se não fnucionar tente a dica 2!2) Formate sua variavel data da seguinte forma e teste:VarData = (day(date) & "/" & month(date) & "/" & year(date)) 3) se continuar não funcionando inverta sua data: VarData = (month(date) & "/" & day(date) & "/" & year(date))poste aqui os resultados... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marcus Gemeos Postado Dezembro 10, 2008 Autor Denunciar Share Postado Dezembro 10, 2008 (editado) Olá amigo,Eu tentei os três... e não lista... a data no banco está "8/12/2008". E hoje juntamente com o PC, são 10/12/2008.Nem sei mais o que fazer... não sei como ele lê o código...VarData = (month(date) & "/" & day(date) & "/" & year(date)) 'VarData = (day(date) & "/" & month(date) & "/" & year(date)) *comentado e testado não deu certo 'VarData = "" & day(date) & "/" & month(date) & "/" & year(date) & "" *comentado e testado não deu certo sqlProd = "Select * from clientes where dt_prox_venc < #" & VarData & "# order by dt_prox_venc" Editado Dezembro 10, 2008 por marcus Gemeos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Spilki Postado Dezembro 10, 2008 Denunciar Share Postado Dezembro 10, 2008 Cara... muito estranho... esse campo data no BD está realmente no tipo data? em qual formato?poste aqui o resultado do debug da query!aliás... além disso... poste aqui tb o seu código completo![]'s Rafael Spilki Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marcus Gemeos Postado Dezembro 10, 2008 Autor Denunciar Share Postado Dezembro 10, 2008 (editado) Abaixo segue o código da página completa...<!--#include file="conexao_dados.asp"--> <% if Session("Usuario") = "" then Response.Redirect "usuario_nao_identificado.asp" end if Dim Conexao VarData = (month(date) & "/" & day(date) & "/" & year(date)) 'VarData = (day(date) & "/" & month(date) & "/" & year(date)) 'VarData = "" & day(date) & "/" & month(date) & "/" & year(date) & "" 'novaData = dateadd("d", 31, VarData) sqlProd = "Select * from clientes where dt_prox_venc < #" & VarData & "# order by dt_prox_venc" %> <html> <head> <meta http-equiv="Content-Language" content="pt-br"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <meta name="GENERATOR" content="Microsoft FrontPage 5.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>:: Programa IP IDEAL ::</title> </head> <body> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1" height="108"> <tr> <td width="100%" height="75"> <p align="center"><img border="0" src="imagens/logo1.jpg"></td> </tr> <tr> <td width="100%" height="33"> <p align="center"> <font color="#FFFFFF" face="Verdana" size="1"><b>.</b></font><font face="Verdana"><span style="font-size: 8pt; font-weight: 700">:: Programa IP IDEAL ::</span></font></td> </tr> </table> <table border="0" width="100%" cellspacing="1" cellpadding="0"> <tr> <td width="100%" bgcolor="#FFFFFF"> <font size="2" face="Verdana">:: <b>Seção lista de clientes em débitos</b>, bem vindo(a) <font color="#008080"><%=Session("Usuario")%></font></font></td> </tr> <tr> <td width="100%" bgcolor="#FFFFFF"> </td> </tr> <tr> <td width="100%" bgcolor="#FFFFFF"> <form method="POST" action="<%= Request.ServerVariables("SCRIPT_NAME") %>"> <p> <input type="submit" value="*Listar novamente todos os clientes em débitos" name="Blistar_clientes_debitos" style="font-family: Verdana; font-size: 10 px; float: right; border-style: solid; border-width: 1"></p> </form> </td> </tr> <tr> <td width="100%" bgcolor="#FFFFFF"> <p align="left"> </td> </tr> </table> <table border="0" width="100%" cellspacing="1" cellpadding="0"> <tr> <td width="42%"> </td> </tr> </table> <table border="0" width="519" cellspacing="1" cellpadding="0" height="1"> <% 'abre a conexao Call abre_conexao 'executa a instrução SQL Set rs = Conexao.Execute(sqlProd) IF rs.EOF then Response.write "<i><font color=""#FF0000"">Não existem clientes em débitos!</font></i>" ELSE While not rs.EOF %> <tr> <td height="1" width="100000" bgcolor="#F2F2F2"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1"> <% Response.write "<br><b>Código: </b>" & rs("Codigo") Response.write "<br><b>Nome do responsável: </b>" & rs("nome") Response.write "<br><b>E-mail: </b>" & rs("email") Response.write "<br><b>Domínio: </b>" & rs("dominio") Response.write "<br><b>Data do vencimento: </b>" & rs("dt_prox_venc") %> </font> </td> <td height="1" width="42" align="center" bgcolor="#F2F2F2" valign="middle"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1"> <form method="POST" action="listar_clientes_debitos_detalhes.asp?id=<%=rs("Codigo")%>"> <p> <input type="submit" value="Detalhar" name="BDetalhes" style="border-style:solid; border-width:1; float: left; font-family:Verdana; font-size:10 px; color:#666666"></p> </form> </font> </td> <td height="1" width="71"></td> <% rs.movenext Wend End If rs.Close 'fecha a conexao Call fecha_conexao Set rs = Nothing%> </td> </tr> </table> <p align="center"> </p> <form method="POST" action="secao_financas.asp"> <p align="center"> <input type="submit" value="» Voltar «" name="Bvoltar" style="font-family: Verdana; font-size: 10 px; border-style: solid; border-width: 1"></p> </form> <p align="center"> </p> <p align="center"></p> </body> </html>O que está dentro da DB ACCESS no campo dt_prox_venc é exatamente isso: 8/12/2008Será que não tinha outra forma...? :huh:Eu acredito também amigo, que o BD ACCESS, não funcione como se fosse SQL Server! Editado Dezembro 10, 2008 por marcus Gemeos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Spilki Postado Dezembro 10, 2008 Denunciar Share Postado Dezembro 10, 2008 Não entendi... qual bd você está utilizando?Access ou sql server? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marcus Gemeos Postado Dezembro 10, 2008 Autor Denunciar Share Postado Dezembro 10, 2008 Estou usando o ACCESS, será isso a causa do problema? O ACCESS talvez não tenha tanta "inteligência" para ler o comando como o SQL Server faz? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Spilki Postado Dezembro 10, 2008 Denunciar Share Postado Dezembro 10, 2008 Não não... nada a ver... de fato cada banco tem suas peculiaridades... mas pra tudo tem-se um jeito...A primeira coisa a fazer é setar o formato de data regional... ou seja, coloque no início de seu código:session.lcid = 1046 Abaixo disso resgate as datas e as formate... eu to vendo aqui que sua vriavel data é exatamente igual a date... portanto eu faria simplesmente: VarData = date 'ao invés disso: 'VarData = (month(date) & "/" & day(date) & "/" & year(date))teste e veja o que ocorre...[]'s Rafael Spilki Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marcus Gemeos Postado Dezembro 10, 2008 Autor Denunciar Share Postado Dezembro 10, 2008 (editado) Ele lista idependente da data!A data está imprimindo assim da variável... 10/12/2008E o que está dentro do banco está assim: 08/01/2009. Nem venceu... mais exibe assim mesmo!Talvez seja melhor eu migrar para SQL Server! Editado Dezembro 10, 2008 por marcus Gemeos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Spilki Postado Dezembro 10, 2008 Denunciar Share Postado Dezembro 10, 2008 Mas é exatamente isso que o seu select está mandando fazer não é?Todas os registros do bd com datas menores a data de hoje!Té certinho então! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marcus Gemeos Postado Dezembro 10, 2008 Autor Denunciar Share Postado Dezembro 10, 2008 08/01/2009 entendeu? 2009? E imprimi, 2009 nem chegou... :rolleyes: Mas vou migrar para SQL Server mesmo... mas me diga uma coisa, no SQL SERVER tenho como eu fazer o backup das informações? Vai ser local mesmo....Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Spilki Postado Dezembro 10, 2008 Denunciar Share Postado Dezembro 10, 2008 Não tinha visto que era 2009! mas enfim... de que adianta migrar simplesmente... você tem mais conhecimento em SQL do que access???Sim... sempre tem como fazer backup das informações! exportar / importar elas de um banco para outro é que nem sempre é possível, pois alguns dados podem vir corrompidos... e é impossível precisar quantos! pode ser alguns, todos ou nenhum!Mas enfim... esse problema pode ser resolvido sim... basta que você leia com muita calma todos os meus posts e comece a fazer vários testes até achar a combinação perfeita para formatar sua data...Se não está funcionando com session.lcid = 1046 você pode tentar com 1036...ou até mesmo forçar em 1036 e depois passar para 1046...você pode ainda dividir o date... usando datepart e separar dia, mês e ano... montando-os depois em uma string!Problemas com datas são normais... e é extremamente difícil descobrir como consertá-los... mas a solução é SEMPRE simples... e sempre passa pelas dicas que lhe dei!qualquer. coisa postaí! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marcus Gemeos Postado Dezembro 10, 2008 Autor Denunciar Share Postado Dezembro 10, 2008 Obrigado Rafael pela pasciência!!!!Qualquer coisa eu posto...Abraços!!! :rolleyes: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Spilki Postado Dezembro 10, 2008 Denunciar Share Postado Dezembro 10, 2008 Pô... legal cara... pena que não consegui te ajudar mais... mas espero pelo menos ter dado uma luzinha que seja... faça umas experiências aí... conforme forem surgindo novos sintomas posta aqui que talves eu tenha uma luz de por onde ir tb... porque agora fiquei no escuro tb!abração Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marcus Gemeos Postado Dezembro 10, 2008 Autor Denunciar Share Postado Dezembro 10, 2008 Se eu resolver esta questão em cima disso... eu posto sim... isso se não me zangar e usa o SQL Server mesmo como DB!!!Abração amigo!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marcus Gemeos Postado Dezembro 12, 2008 Autor Denunciar Share Postado Dezembro 12, 2008 (editado) Olá pessoal,Eu gostaria de saber, como faço para imprimir uma data já cadastrada no banco SQL Server em formato normal?Pois a data que vem do banco, mesmo cadastrada corretamente, saí sem ordem. E isso implica se formos listar resgistros por data?A minha SQL é esse: 'sqlProd = "Select * from clientes where dt_prox_venc < '" & VarData & "'"Abraços!Marcus Vinicius Editado Dezembro 12, 2008 por marcus Gemeos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Spilki Postado Dezembro 12, 2008 Denunciar Share Postado Dezembro 12, 2008 Marcus... Alguns links:http://forum.imasters.uol.com.br/index.php?showtopic=307560http://forum.imasters.uol.com.br/index.php?showtopic=295519você deve fazer uma pesquisa no google antes de postar aqui... a literatura a respeito disso é vasta na internet...Seu novo post foi mesclado ao antigo por eu entender tratar-se absolutamente do mesmo assunto e do mesmo problema.[]'s Rafael Spilki Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 marcus Gemeos Postado Dezembro 12, 2008 Autor Denunciar Share Postado Dezembro 12, 2008 Eu fiz pesquisas sim... mas não dava pé....Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
marcus Gemeos
Pessoal,
Eu gostaria de saber, como faço para um busca no sistema só listar pessoas por data? Ou seja, tem um registro que contem um campo chamado "vencimento", se a data cadastrada neste campo, for menor que a data atual, listasse (imprimisse...)
Eu tenho já o comando de imprimir a data atual:
Esse comando "captura" a data atual.
Resumindo: Um sistema que listasse registros que tenha a data vencida!
Abraços!
Link para o comentário
Compartilhar em outros sites
32 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.