Ir para conteúdo

POWERED BY:

Arquivado

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

WoodsPhreaker

[Resolvido] Select com tratamento de campo e variável ... Como ?

Recommended Posts

Não sei pq, o post sumiu ... estou postando de novo.

 

Pessoal, já faz 3 dias que estou arrancando os cabelos com esse script aqui.

 

É o seguinte...

 

Preciso terminar um sistema de menságens automáticas. Mas para isso, preciso comparar o campo nascimento com a variável DataAtual, que nada mais é que a data atual do servidor. Mas não quero pegar o ano mas somente dia e mes.

 

No BD esta no formato DD/MM/AAAA, mas o campo está como texto não como data. Então eu criei uma função left que pega somente os 5 primeiros caracteres do campo nascimento do BD e depois preciso compara-la com a variavel data. Seria até simples, se eu não precisasse tratar o campo do BD, mas isso está se tornando uma tormenta p/ mim.

 

P/ ajudar a entender meu problema, vou postar o código.

 

<%
session.lcid=1046
DataAtual = day(now)&"/"& month(now)
Set DB = Server.CreateObject("ADODB.Connection")
Caminho="C:\Inetpub\wwwroot\Site\Database\BD.mdb"
ConexaoBD = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Caminho&";"
DB.Open (ConexaoBD)
Set rs = Server.CreateObject("ADODB.Recordset")
sql=  "SELECT * FROM clientes where nascimento [b] 'aqui está o problema' [/b] ORDER by clienteid asc"
rs.Open sql, DB, 3, 3 
if rs.EOF or BOF then
response.write "Não encontrado"
else
While Not rs.EOF
nome = rs("nome") 
data = rs("nascimento")
email = rs("email")
strTextoHtml = strTextoHtml & "<table width=100% border=1 align=center cellpadding=0 cellspacing=5 summary=>" &vbnewline
strTextoHtml = strTextoHtml & "<tr>" &vbnewline
strTextoHtml = strTextoHtml & "<td width=20% align=right valign=middle>Nome:</td>" &vbnewline
strTextoHtml = strTextoHtml & "<td width=80% align=left valign=middle>" &UCASE(nome)&" </td>" &vbnewline
strTextoHtml = strTextoHtml & "</tr>" &vbnewline
strTextoHtml = strTextoHtml & "<tr>" &vbnewline
strTextoHtml = strTextoHtml & "<td width=20% align=right valign=middle>Data Niver:</td>" &vbnewline
strTextoHtml = strTextoHtml & "<td width=80% align=left valign=middle>" &UCASE(data)& "</td>" &vbnewline
strTextoHtml = strTextoHtml & "</tr>" &vbnewline
strTextoHtml = strTextoHtml & "<tr>" &vbnewline
strTextoHtml = strTextoHtml & "<td width=20% align=right valign=middle>Email:</td>" &vbnewline
strTextoHtml = strTextoHtml & "<td width=80% align=left valign=middle>" &UCASE(email)& "</td>" &vbnewline
strTextoHtml = strTextoHtml & "</tr>" &vbnewline
strTextoHtml = strTextoHtml & "</table>" &vbnewline	
Set Mail = Server.CreateObject("Persits.MailSender")
Mail.Host = "localhost"
Mail.From = "origem@provedor.com.br"
Mail.FromName = "Feliz Aniversário "&nome&""
Mail.AddReplyTo "retorno@provedor.com.br
Mail.AddAddress email
Mail.Subject = "Parabéns pelo seu dia"
Mail.isHTML = true
Mail.Body = strTextoHtml	 	
Mail.Send
Set Mail = nothing
rs.movenext
Wend
end if
rs.Close
Set rs = Nothing
%>
<%
response.write strTextoHtml	
%>
Como vcs podem ver, o script etá quase pronto.

 

O que eu preciso se possivel, no SELECT tratar o campo nascimento ( que contem as datas ) com a função LEFT que pega somente os 5 primeiros caracteres, que ficaria no formato DD/MM e aí sim comparar com a variável DataAtual.

 

Complicado né ? Pois é ...

 

Já não sei mais o que fazer... Por isso estou pedindo a juda dos mestres em ASP aqui.

 

Desde já agradeço pessoal... Muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar o select month

no access esxiste a função Month() e Year (), se você estivesse usando o SQL Server, seria mais fácil, você usaria o GetDate(),no Access possui as funções que nos auxiliam nas consultas, são:

 

Day() = Retorna o dia da data

Month() = Retorna o mes da data

Year() = Retorna o ano data

Hour() = Retorna a hora da data

Minute() = Retorna o minuto da data

Second() = Retorna o segundo da data

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar o select month

no access esxiste a função Month() e Year (), se você estivesse usando o SQL Server, seria mais fácil, você usaria o GetDate(),no Access possui as funções que nos auxiliam nas consultas, são:

 

Day() = Retorna o dia da data

Month() = Retorna o mes da data

Year() = Retorna o ano data

Hour() = Retorna a hora da data

Minute() = Retorna o minuto da data

Second() = Retorna o segundo da data

Obrigado pela resposta amigo.

 

Mas meu problema não está em selecionar o dia e mês, isso já consigo com a função left ( faço isso pq o campo no BD não está formatado com data e sim como texto ) e nessa função pego os 5 primeiros caracteres do campo nascimento ( que contém as datas ). O que eu queria, é fazer isso no próprio Select e comparar o resultado com a variável DataAtual e aí sim filtrar os dados.

 

Meu problema está somente em como montar o Select.

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.