Ir para conteúdo

POWERED BY:

Arquivado

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

shumi

SQL que verifica os aniversáriantes!

Recommended Posts

Galera,No meu banco de dados tenho uma data com esse formato dd/mm/aaaa, precisaria fazer um comando SQL dos aniversariantes do dia. o ano que esta no BD é o ano de nascimento da pessoa e no comando SQL tinha que ver quem são os aniversáriantes do dia...Como posso fazer esse comando?Fiz um aqui mas não da erro nem aparece nada!!!!!Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

se for para fazer um sql certinho a primeira coisa a fazer é mudar o tipo de campo da data para DATE e o padrao dele é yyyy-mm-dd ou seja ano-mes-dia, mas é o correto as datas tem que ser salva no campo certo para guardar datas, dai com o campo certo fica facil fazer uma busca por datas

 

agora se tiver assim do jeito que você falou dd/mm/aaaa nao tem como, só se fazer uma gambiarra

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo,Alterei meu DB e ele formatou meus dados assim: 12/6/1986 por exemplo esse é minha data de nascimento 12 de junho de 1986... estou usando o Access e formatei pra data/hora

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que sim, pois olhei nos formatos se dava pra mudar e nem tem essa opção!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora em sua busca é só você usar as funções Day e Month na SQL, algo +/- assim:

Select * From tabela Where Day(dataaniversario)="& day(now()) &" And Month(dataaniversario)="& Month(now()) &";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu certo Salgado! fiz assim pra testar:

 

sql= "Select * From cadastro Where Day(data_niver)="& day(now()) &" And Month(data_niver)="& Month(now()) &";" Set rs=Conexcao.Execute(sql)%><% While not rs.EOF%><%=rs("nome")%><br><%=rs("email")%><br><%=rs("local")%><br><%=rs("data_niver")%><br> <%	 rs.MoveNext	 wend set rs=nothing

Mas assim, aqui na empresa fizemos cartões de décadas desde 50 até 80 e se a pessoa cadastrada faz aniversario hoje e nasceu em 1953 um cartão da decada de 50 tem que ser enviado à ela....

Como que é a logica disso???

 

Eu fiz o C´donts pra envio, mas não sei como devo fazer pra separar as datas, por exemplo esse SQL verificaria quem faz niver no dia.... e como devo fazer pra resgatar o ano e comparar se é de 50, 60, 70 ou 80???

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

naum da pra fazer um YEAR() no ano só pra pegar o ano e faz uns IFstipoif year([data]) > 1969 AND < 1970 then ' manda para decada de 60end ifeu acho q essa eh a lógica!espero ter ajudado!boa sorte

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma possível forma seria algo +/- assim:

Ano = Year(CDate(rs("data_niver")))
If Ano > 1949 And Ano < 1960 Then
Corpo = "Decada de 50"
ElseIf Ano > 1959 And Ano < 1970 Then
Corpo = "Decada de 60"
ElseIf e por ai vai
End If

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas eu manteria a mesma SQL????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então fiz assim para testar:

 

sql= "Select * From cadastro Where Day(data_niver)="& day(now()) &" And Month(data_niver)="& Month(now()) &";" Set rs=Conexcao.Execute(sql)Ano = Year(CDate(rs("data_niver")))If Ano > 1949 And Ano < 1960 Then'Corpo = "Decada de 50"Response.Write("Decada de 50")ElseIf Ano > 1959 And Ano < 1970 Then'Corpo = "Decada de 60"Response.Write("Decada de 60")ElseIf Ano > 1969 And Ano < 1980 Then'Corpo = "Decada de 70"Response.Write("Decada de 70")ElseIf Ano > 1979 And Ano < 1990 Then'Corpo = "Decada de 80"Response.Write("Decada de 80")End If%>

e cadastrei 2 pessoas que fariam aniversário hoje e em décadas diferentes e só escreveu uma vez.

 

"Decada de 50" e o outro não escreveu!

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

esquece consegui faze aparecer...agora vou colocar o C´donts!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz aqui não deu erro nenhum, mas tb não mandou e-mail!

 

fiz assim:

<%dim ConexcaoSet Conexcao = Server.CreateObject("ADODB.Connection")Conexcao.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("banco.mdb"))If NOT (Session("logado")) ThenResponse.Redirect "index.asp"Response.EndEnd Ifsql= "Select * From cadastro Where Day(data_niver)="& day(now()) &" And Month(data_niver)="& Month(now()) &";" Set rs=Conexcao.Execute(sql)While not rs.EOF   Ano = Year(CDate(rs("data_niver")))If Ano > 1949 And Ano < 1960 Then'Corpo = "Decada de 50"Set ObjMail = Server.CreateObject("Cdonts.Newmail")ObjMail.Subject = "Parabéns!!!!!"ObjMail.From = "NewStyle <newstyle@newstyle.com.br>"ObjMail.To = rs("email")ObjMail.BodyFormat = 1ObjMail.Body = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' /><title>PARABÉNS!!!!</title></head><body style='margin:0px;'><div align='center'><table border='0' cellpadding='0' cellspacing='0'><tr><td height='55' style='font-family:Arial, Helvetica, sans-serif; font-size:11px; padding-top:5px;'>Caso não esteja visualizando o e-mail abaixo  por favor <a style='color:#004BF4;' href='http://www.meu_site.com.br'>clique aqui</a></td></tr><tr><td align='center'><a href='http://www.meu_site.com.br'>'<img src='capa_50.gif'>'</a></td></tr></table></div></body></html>"ObjMail.AttachURL Server.MapPath("capa_50.gif"),"capa_50.gif"ElseIf Ano > 1959 And Ano < 1970 ThenResponse.Write("Decada de 60")ElseIf Ano > 1969 And Ano < 1980 Then'Corpo = "Decada de 70"Response.Write("Decada de 70")ElseIf Ano > 1979 And Ano < 1990 Then'Corpo = "Decada de 80"Response.Write("Decada de 80")End If  rs.MoveNext	 wend set rs=nothing%>

O que fiz de errado????

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim!!!

 

estou testando direto da FTP e lá uso um script em C´donts que é assim:

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%><%server.scriptTimeout = 3600Dim MailDim STR_HTMLDim filename, contentfilename = request.querystring("nf") lang = Request.QueryString("lang")Set fs=Server.CreateObject("Scripting.FileSystemObject")'open the fileSet f=fs.OpenTextFile(Server.MapPath(filename), 1)i=0do while f.AtEndOfStream = false	line = f.ReadLine	myarray = Split(line, ";")		id_panelist = trim(myarray(0))	name_panelist = trim(myarray(1))	email_panelist = trim(myarray(2))	'sex_panelist = trim(myarray(3))			id_survey =108	lang="PT"	fk_country=31	url_survey="http://www.ecglobalpanel.com/ecsurvey/takesurvey.asp?lang=PT&sv="&id_survey&"&ct="&fk_country&"&ps_id="&id_panelist&""	url_optout="http://www.ecglobalpanel.com/ecsurvey/remove_panel.asp?lang="& lang &"&id="& id_panelist	url_rules="http://www.ecglobalpanel.com/ecsurvey/104/rules.asp"			txt_url_optout ="Se você não desejar mais receber e-mails desta lista por favor clique <a href="& url_optout &">aqui</a>."			subject_line =" PARABÉNS!!!"	response.write id_panelist & ";" & email_panelist &"<br>"	STR_HTML = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' /><title>PARABÉNS!!!!</title></head><body style='margin:0px;'><div align='center'><table border='0' cellpadding='0' cellspacing='0'><tr><td height='55' style='font-family:Arial, Helvetica, sans-serif; font-size:11px; padding-top:5px;'>Caso não esteja visualizando o e-mail abaixo  por favor <a style='color:#004BF4;' href='http://www.newstyle1.com/cartoes/50.html'>clique aqui</a></td></tr><tr><td align='center'><a href='http://www.newstyle1.com/cartoes/50.html'>'<img src='capa_50.gif'>'</a></td></tr></table></div></body></html>"'ASPMail	'Set Mail = Server.CreateObject("Persits.MailSender") 	'Mail.Host = "127.0.0.1" 	'Mail.From = "survey@ecglobalpanel.com"	'Mail.FromName = "eCGlobalPanel"	'Mail.AddAddress email_panelist	'Mail.Subject =  subject_line 	'Mail.Body = STR_HTML	'Mail.IsHTML = True 	'On Error Resume Next	'	Mail.Send	'CDONTS			'CDONTS 	Set objMail = Server.CreateObject("CDONTS.Newmail") 	ObjMail.AttachURL Server.MapPath("capa_50.gif"),"capa_50.gif"	objMail.To = email_panelist	objMail.From = "NewStyle <newstyle@newstyle.com.br>"	objMail.Subject = subject_line	objMail.Bodyformat = 0	objMail.MailFormat = 0	objMail.Body = STR_HTML	objMail.Send	'Response.Write("<br><strong>Subject: "& subject_line &"</strong><br>"& STR_HTML)	Set objMail = Nothing		id_panelist = ""	name_panelist = ""	email_panelist = ""	'sex_panelist = ""	'fk_country = ""	'birth_year_panelist = ""		'if i=10 then	'	response.end	'end if	i=i+1Loopresponse.write "<br>Total de e-mails enviados:"& i%>

e funciona certinho, mas o problema desse a cima é que puxa um arquivo em txt e esse que estou tentando fazer tem que puxar o e-mail do aniversariante!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não consigo fazer mandar os e-mails! alguem pode dar uma força????valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui galera valeu!!!!ficou perfeito!

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.