Ir para conteúdo

POWERED BY:

Arquivado

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

Gdias

Gravar e Ler Data

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

passa neste formato yyyymmdd, sem barras, traços ou pontos, desta forma nunca tive problemas

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 campoData
outros 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+

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.