Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Salve amigos,
Tô apanhando de uma coisa aparentemente muito simples...
Seguinte, em ASP fiz uma página para cadastrar banners onde informa a data de iníncio e término da publicação... beleza.
Já tentei de tudo e não consigo gravar a data em um formato que seja lido corretamente...
No input type eu pego a data no formato dd/mm/aaaa e manipulo o resultado deixando aaaa/mm/dd... quando grava no SQL fica 1/1/1900.
Colocando a data na unha, quando eu faço a leitura comparando com a data de hoje, mostra publicado para todos, independentemente do valor gravado...
Não sei mais o que fazer... alguém pode ver meu código?
'para gravar'peguei no formulário e tratei o resultado antes de gravar... DE_VIEW = request("DE_VIEW") sDE_VIEW = split(DE_VIEW,"/") vDia = sDE_VIEW(0) vMes = sDE_VIEW(1) vAno = sDE_VIEW(2) ATE_VIEW = request("ATE_VIEW") sATE_VIEW = split(ATE_VIEW,"/") vDia = sATE_VIEW(0) vMes = sATE_VIEW(1) vAno = sATE_VIEW(2) vDE_VIEW = vAno&"/"&vMes&"/"&vDia vATE_VIEW = vAno&"/"&vMes&"/"&vDia con.Execute ("insert INTO TB_BANNER (..., DE_VIEW, ATE_VIEW, ...) values (..., convert(datetime,"&vDE_VIEW&",103), convert(datetime,"&vATE_VIEW&",103), ...)")'depois eu quero ler Const LCID = 1046 '3081 ' Session.LCID = LCID Len_vdia = Len(day(date)) if Len_vdia = 2 then vdia = day(date) else vdia = "0"&day(date) end if Len_vMes = Len(month(date)) if Len_vMes = 2 then vMes = month(date) else vMes = "0"&month(date) end if Len_vAno = Len(year(date)) if Len_vAno > 2 then vAno = right(date,2) else vAno = year(date) end if vDT_HOJE = vAno&""&vmes&""&vdia 'ai fica 20060526 <% Set objRS2 = Server.CreateObject("ADODB.Recordset") MySQL2 = "SELECT * FROM TB_BANNER where DE_VIEW <= '"&vDT_HOJE&"' and ATE_VIEW >= '"&vDT_HOJE&"' " objRS2.Open MySQL2, con, 3 if not objRS2.BOF then Response.Write "<font color=green><b>Publicado!</font></b>" else Response.Write "<font color=red><b>Fora do ar!</font></b>" end if %>
Não sei mais o que fazer para isso funcionar...
Desde já agradeço a força de vocês.
Abraços,
Gsutavo
salve eriva...passar yyyy/mm/dd na hora de gravar?como fica o insert? Assim?("insert INTO TB_BANNER (..., DE_VIEW, ATE_VIEW, ...) values (..., convert(datetime,"&vDE_VIEW&",103), convert(datetime,"&vATE_VIEW&",103), ...)")valeu,gustavo
beleza... pra gravar funcionou sossegado... o código ficou assim:
("insert INTO TB_BANNER (..., DE_VIEW, ATE_VIEW, ...) values (..., '"&vDE_VIEW&"', '"&vATE_VIEW&", ...)")
agora pra ler tá uma zona... trás tudo que está na base ao invés de trazer os banner dentro do range
Const LCID = 1046 '3081 ' Session.LCID = LCID Len_vdia = Len(day(date)) if Len_vdia = 2 then vdia = day(date) else vdia = "0"&day(date) end if Len_vMes = Len(month(date)) if Len_vMes = 2 then vMes = month(date) else vMes = "0"&month(date) end if Len_vAno = Len(year(date)) if Len_vAno > 2 then vAno = right(date,2) else vAno = year(date) end if vDT_HOJE = vAno&""&vmes&""&vdia 'ai fica 20060526 <% Set objRS2 = Server.CreateObject("ADODB.Recordset") MySQL2 = "SELECT * FROM TB_BANNER where DE_VIEW <= convert(datetime,"&vDT_HOJE&",3) and ATE_VIEW >= convert(datetime,"&vDT_HOJE&",3) " objRS2.Open MySQL2, con, 3 if not objRS2.BOF then Response.Write "<font color=green><b>Publicado!</font></b>" else Response.Write "<font color=red><b>Fora do ar!</font></b>" end if %>
Zuado!
falai Gdias ,
passar yyyy/mm/dd na hora de gravar?como fica o insert? Assim?
o ideal mesmo é passar yyyymmdd, por incrivel que pareça já tive problemas com essas merdas de / (barra) em algumas linguagens...
agora pra ler tá uma zona... trás tudo que está na base ao invés de trazer os banner dentro do range
pra ler uma alternativa seria trazer formato pelo próprio SQL, exemplo, para formatar em dd/mm/yyyy:select convert(varchar(30),campoData,103) as campoDataoutros códigos de conversão (103, 102, 108, etc) você pode verificar no bol (books on-line do sql server), procure por CAST and CONVERTpara fazer consultas no where a melhor opção é passar tb. yyyymmdd falowst+
passa neste formato yyyymmdd, sem barras, traços ou pontos, desta forma nunca tive problemas
t+