Ir para conteúdo

POWERED BY:

Arquivado

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

Caroline Mathias

[Resolvido] Não consigo converter data Date()

Recommended Posts

To fazendo um sistema de registro de ocorrencias, e nele eu preciso informar a data e hora, esses campos eu deixo pré preenchidos com um Date.getDate() e assim por diante..

Td funciona maravilhosamente bem, só que quando eu faço uma pesquisa por exemplo, pra puxar do banco os dados, meus campos de data e hora (que estão com esse tipo de dado) retornam como a data completa do metodo Date().

E eu quero fazê-lo voltar ao "normal" o método como é inserido, por exemplo, dd/mm/yyyy e não estou achando em lugar nenhum na internet um modo de conseguir isso...

Alguém me ajuda..?

 

Obrigada =D

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim

 

select date_format('campo','dd/mm/YYY') as data from...

 

Deu erro, "Função indefinida na expressão".

Não sei o que pode ser, fiz uma pesquisa sobre esse método e a sintaxe está certa pelo que parece.

Se puder dar uma olhadinha:

 

SELECT ID_Ocorrencia, DATE_FORMAT('Data', 'd/m/yyyy') as Data, DATE_FORMAT('Hora','h:nn') as Hora, Solicitante, Empresa, Status, Atraso FROM Registro WHERE Status <> 'Concluído' ORDER BY (ID_Ocorrencia) ASC

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desnecessário delegar essa responsabilidade ao banco de dados.

Qual a linguagem server-side que você utiliza para se comunicar com o banco de daods?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desnecessário delegar essa responsabilidade ao banco de dados.

Qual a linguagem server-side que você utiliza para se comunicar com o banco de daods?

 

Não estou usando linguagem server-side, é HTML e Javascript acessando um banco em access.

 

ta então diz o erro

e também escreva sua instrução sql

 

Como disse numa resposta anterior, o erro é "Função DATE_FORMAT indefinida na expressão"

 

A instrução ficou:

 

SELECT ID_Ocorrencia, DATE_FORMAT(Data, "%d/%m/%Y") as data_txt, Hora, Solicitante, Empresa, Status, Atraso FROM Registro WHERE Status <> 'Concluído' ORDER BY (ID_Ocorrencia) ASC

 

Não sei se ajuda, mas o "formato completo" que eu disse que retorna é esse aqui "Wed Oct 3 00:00:00 UTC-0300 2012" para uma data "03/10/2012", por exemplo...

No caso, a variavel Data que está com o valor "03/10/2012" quando retorna apresenta o "Wed Oct 3 00:00:00 UTC-0300 2012"..

Eu consigo usar o JS e por exemplo, se eu faço um

 

var d = new Date(RS.Fields.Item("Data"));
var data = d.toLocaleDateString();

 

Ele altera normalmente, e me traz por exemplo: "quarta-feira, 3 de outubro de 2012"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver, de acordo com o seu conselho pesquisei esse método e como ele se comportaria numa consulta dentro do próprio access, achei um método similar, parece que o DATE_FORMAT é compativel somente com o MySQL..

O método correto no caso é só FORMAT(), as propriedades são similares e o resultado é exatamente o que eu queria, datas como dd/mm/yyyy e hora como hh:mm achei a solução aqui: http://webcheatsheet.com/sql/access_functions/format.php

 

Obrigada pela atenção, até a próxima =D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente, desculpa surgir com esse assunto d nv.. Mas é que surgiu um novo problema, mas não consigo entendê-lo...

Eu informo uma data normal no formato dd/mm/yyyy, porém se o dia for menor ou igual a 12 ele grava como mm/dd/yyyy..

Como se eu estivesse dando entrada em formato americano, quando na verdade não estou...

Na hora de inserir no banco a string está certa, quando chega lá ela muda e eu não consigo entender o pq...

Olhei em todas as configurações do Access, mas não sei o que pode estar acontecendo.. Alguém pode me ajudar..?

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste a tua string de insert aqui.

como você monta ela, e como ela vai para o banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste a tua string de insert aqui.

como você monta ela, e como ela vai para o banco.

 

A string é a seguinte:

 

var sql = "INSERT INTO Registro(Data, Hora, Canal, Empresa, Login, email_l, Solicitante, email_s, Direcionamento, Assunto, SubAssunto, Status, Responsavel, Prazo, Descricao, Recomendacao, Obs) VALUES(#" + data + "#, #" + hora + "#, '" + canal + "', '" + empresa + "', '" + login + "', '" + email_l + "', '" + solicitante + "', '" + email_s + "', '"+ area +"', '" + assunto + "', '" + subassunto + "', '" + status + "', '" + responsavel + "', #" + prazo + "#, '" + desc + "', '" + recomend + "', '" + obs + "')";

 

Essas variáveis contém valores inseridos por um form html, minhas datas são sempre em formato dd/mm/yyyy, por exemplo, 31/10/2012.

O problema está se informam uma data com um valor tipo 01/11/2012, quando o valor chega no banco o access muda a string e deixa como mm/dd/yyyy (11/01/2012 no caso).

Eu chequei se não é no codigo que muda o valor, mas não é mesmo, até porque, nesse caso eu não faço nenhuma manipulação de data.

Se eu escrevo a data direito no banco ela fica correta, ele só modifica quando eu envio do sistema pra lá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, então antes de enviar para a string de INSERT você precisa manipular a data, e converter para o formato americano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, então antes de enviar para a string de INSERT você precisa manipular a data, e converter para o formato americano.

 

Funcionou =D

Obrigada, tinha pensando em fazer isso mas fiquei com dúvida, pois achei que a data ficaria gravada ainda no formato "errado".. Mas não, ela ficou certinha..

 

Obrigada mais uma vez =D

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.