ViniciusJau Postado Fevereiro 9, 2005 Denunciar Share Postado Fevereiro 9, 2005 seguinte... eu tenho um form que grava uma data no meu banco a pessoa digita a data.... porem estou com o seguinte problema...a primeira data a pessoa digita no formulário: xx/xx/xxxx (incluindo as barras)só que no banco ela está gravando assim: 0000-00-00, acho que isso ocorre porque o mysql entende como numeros invalidos para o campo e cadastra zero como eu faço para arrumar essa data ??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 felipefrancesco Postado Fevereiro 9, 2005 Denunciar Share Postado Fevereiro 9, 2005 Vinicius, isso acontece porque o formato de hora padrão do MySql é esse YYYY-mm-dd, então quando você manda gravar ele não entende como data e grava o valor padrão do campo. Pois bem, ai vão duas funções que transformam uma data em ASP para o formato do MySql, uma transforma só em data a outra em data/hora: '::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: function formataDataHora(dtValor) Dim strRetorno strRetorno = Year(dtValor) & "-" & Month(dtValor) & "-" & Day(dtValor) & _ chr(32) & Hour(dtValor) & ":" & Minute(dtValor) & ":" & Second(dtValor) formataDataHora = strRetorno end function '::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: function formataDataRapido(dtValor) Dim strRetorno if isDate(dtValor) then strRetorno = Year(dtValor) & "-" & Month(dtValor) & "-" & Day(dtValor) else strRetorno = "" end if formataDataRapido = strRetorno end function '::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Para extrair as datas depois no formato adequado, use a função DATE_FORMAT do MySql, assim: SELECT DATE_FORMAT(data, '%d/%m/%Y') FROM tabela Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Fevereiro 9, 2005 Autor Denunciar Share Postado Fevereiro 9, 2005 legal valeu felipe....mais uma perg...tenho um form que grava no BD a hora e a data que a pessoa enviou o formulário.....eu estou fazendo assim:<%'pega a data do servidordia = date'e aqui a hora do servidor hora = time%>"INSERT INTO TABELA (Dia,Hora,....) Values('"&dia&"','"&Data&"' etc etc...e ele gravou a data assim: 2002-09-20dai pensei que a data no servidor poderia estar errada, então criei um arquivo para mostrar a data e conferir:Hoje é <%=date%>e ele me exibiu isso: 2/9/2005então pelo que eu percebi ele está no formato MES/DIA/ANO é isso ?? isso eu tenho que corrigir no meu banco ou tenho que criar uma função ?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 felipefrancesco Postado Fevereiro 9, 2005 Denunciar Share Postado Fevereiro 9, 2005 Usa a função do MySql mesmo, CURDATE e CURTIME...olha só: INSERT INTO TABELA (Dia,Hora,....) Values(CURDATE(),CURTIME(),...) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Fevereiro 9, 2005 Autor Denunciar Share Postado Fevereiro 9, 2005 legal !!! deu certo aqui Felipe funcinou certinho...valeu s!!!!!!! não conhecia essa: CURDATE(),CURTIMEcomo eu pego essas funções do mysql ??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Fevereiro 9, 2005 Denunciar Share Postado Fevereiro 9, 2005 e como você vai chamar essa funçãofunction formataDataRapido(dtValor)Dim strRetornoif isDate(dtValor) then strRetorno = Year(dtValor) & "-" & Month(dtValor) & "-" & Day(dtValor)else strRetorno = ""end ifformataDataRapido = strRetornoend functionthiago Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Fevereiro 9, 2005 Autor Denunciar Share Postado Fevereiro 9, 2005 num deu muito certo não....eu fiz meu codigo assim:<%'pede os dados do formulárioData = Request.Form("Data")%><% 'formatando a data para gravar no BDfunction formataDataRapido(Data)Dim strRetornoif isDate(Data) then strRetorno = Year(Data) & "-" & Month(Data) & "-" & Day(Data)else strRetorno = ""end ifformataDataRapido = strRetornoend function%><% If (Data = "") thenResponse.write("Você deve digitar a data para continuar")Else set rs = objConnection.execute("INSERT INTO TABELA (data) Values('"&Data&"')será que porque o valor vem do formulário com as barras ??? por exemplo: 31/03/1983eu troquei a validação no meu form por - e o erro continuou na mesma Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ursolouco Postado Fevereiro 9, 2005 Denunciar Share Postado Fevereiro 9, 2005 Brother!!Estou sem tempo agora, mas diga lá, como esta a data na sua base de dados ?Já experimentou trabalhar com Session.LCID ?Abraços!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Fevereiro 9, 2005 Autor Denunciar Share Postado Fevereiro 9, 2005 humm... eu li alguma coisa no site do mysql sobre isso, mais parece que você tem que saber o numero do padrão americanono meu banco está assim:Tipo: DatePAdrão: 0000-00-00 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 felipefrancesco Postado Fevereiro 9, 2005 Denunciar Share Postado Fevereiro 9, 2005 Vinicius, você tá chamando a função?? (Já respondendo a pergunta do nosso Guest), Veja se isso resorve: <% 'pede os dados do formulário Data = Request.Form("Data") %> <% 'formatando a data para gravar no BD function formataDataRapido(Data) Dim strRetorno if isDate(Data) then strRetorno = Year(Data) & "-" & Month(Data) & "-" & Day(Data) else strRetorno = "" end if formataDataRapido = strRetorno end function %> <% If (Data = "") then Response.write("Você deve digitar a data para continuar") Else set rs = objConnection.execute("INSERT INTO TABELA (data) Values('"&formataDataRapido(Data)&"'") Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ViniciusJau Postado Fevereiro 10, 2005 Autor Denunciar Share Postado Fevereiro 10, 2005 ahnnn táh,.. realmente meu problema era este:set rs = objConnection.execute("INSERT INTO TABELA (data) Values('"&formataDataRapido(Data)&"')eu estava chamando ela assim: ('"&Data&"') waleu pela paciencia !! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Março 15, 2006 Denunciar Share Postado Março 15, 2006 Vinicius, você tá chamando a função?? (Já respondendo a pergunta do nosso Guest), Veja se isso resorve: <% 'pede os dados do formulário Data = Request.Form("Data") %> <% 'formatando a data para gravar no BD function formataDataRapido(Data) Dim strRetorno if isDate(Data) then strRetorno = Year(Data) & "-" & Month(Data) & "-" & Day(Data) else strRetorno = "" end if formataDataRapido = strRetorno end function %> <% If (Data = "") then Response.write("Você deve digitar a data para continuar") Else set rs = objConnection.execute("INSERT INTO TABELA (data) Values('"&formataDataRapido(Data)&"'") wrwr Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ViniciusJau
seguinte... eu tenho um form que grava uma data no meu banco a pessoa digita a data....
porem estou com o seguinte problema...
a primeira data a pessoa digita no formulário: xx/xx/xxxx (incluindo as barras)
só que no banco ela está gravando assim: 0000-00-00,
acho que isso ocorre porque o mysql entende como numeros invalidos para o campo e cadastra zero
como eu faço para arrumar essa data ???
Link para o comentário
Compartilhar em outros sites
11 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.