Ir para conteúdo

Arquivado

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

Walter Junior

[Resolvido] Problema com o campo data

Recommended Posts

Pessoal, criei um campo data na minha tabela, e coloquei ele como date, dai ele pega o formato yyyy-mm-dd, e quando eu vou cadastrar ela so consigo adicionar no banco de dados se eu colocar nesse formato 0000-00-00, como faço para eu colocar no formato normal dd/mm/yyyy no formulario para ser cadastrado no banco de dados, so está funcionando no formato yyyy-mm-dd. Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito cara

 

no banco so aceita yyyy-mm-dd

 

 

mas quando voce for exibir voce pode formatar e colocar: dd/mm/yyyy

 

apenas faça isso;;;

 

$data = "2008-10-25";

$datas = explode("-",$data);

$format_data = $datas[2]."/".$datas[1]."/".$datas[0];

 

 

Pronto formatado e pronto para exibir......

 

MAIS NO BANCO SEMPRE EH O FORMATO YYYY-MM-DD

 

VLW

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, criei um campo data na minha tabela, e coloquei ele como date, dai ele pega o formato yyyy-mm-dd, e quando eu vou cadastrar ela so consigo adicionar no banco de dados se eu colocar nesse formato 0000-00-00, como faço para eu colocar no formato normal dd/mm/yyyy no formulario para ser cadastrado no banco de dados, so está funcionando no formato yyyy-mm-dd. Abraço.

O formato de datas aceito pelo MySQL é yyyy-mm-dd. Portanto, você pode pegar os dados do formulário no formato dd-mm-yyyy e depois converter (usando uma função) para o formato do MySQL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

RTDN Consultoria eu coloquei o codigo no meu formulario que faz a inclusão no banco de dados, dai no lugar da data que você colocou eu coloquei a variavel que traz a data, mais dai ele não cadastra, fica o valor em branco. vou colocar o codigo como ficou.

 

$data = "$dt_nasc";
$datas = explode("-",$data);
$format_data = $datas[2]."/".$datas[1]."/".$datas[0];

OU está errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

$data = "$dt_nasc";
$datas = explode("-",$data);
$format_data = $datas[2]."/".$datas[1]."/".$datas[0];

OU está errado?

A perqunta não foi pra mim, mas notei uma coisa, talvez ajude: você pegou a variável $dt_nasc anteriormente usando POST?

Se $dt_nasc vem de um formulário, você deve fazer algo do tipo $dt_nasc = $_POST['nome-do-campo-do-form-que-pega-a-data']; antes de 'explodi-la'.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu sei a função assim

SELECT DATE_FORMAT($dt_nasc,'%dd/%mm/%YYYY') FROM agente;

E está dando esse erro.

 

You have an error in your SQL syntax near '; SELECT DATE_FORMAT(27102008,'%dd/%mm/%YYYY') FROM agente; ' at line 6

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo da o mesmo erro.

 

You have an error in your SQL syntax near '; SELECT DATE_FORMAT('27102008','%dd/%mm/%YYYY') FROM agente; ' at line 6

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo eu estava olhando aqui, não sei se estamos falando do mesmo problema ou se resolve da mesma maneira, eu estava olhando esses codigos eles estão me parecendo que serve para imprimir um resultado, ou seja a data no banco está 2008-10-27 e ele imprimi 27-10-2008 estou correto, e eu estou querendo é por exemplo a pessoa digita 27-10-2008 e ele cadastra no banco 2008-10-27 ou o metodo de fazer é o mesmo? Me desculpe a ignorancia mais sou novato nisso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Walter,

 

Eu uso essa função dessa forma e dá certo: date_format(data, "%d/%m/%Y") as data. Com essa formatação, a data é exibida no formato 00/00/0000.

 

Notei que sua função tem duas letras 'd' e duas 'm' também. Deixe apenas uma e tente novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal me desculpem mais não consegui fazer funcionar, vou colocar o meu codigo aqui e se puderem me ajudar ficarei agradecido.

 

<?php
	$codigo=$_POST['codigo'];
	$cpf=$_POST['cpf'];
	$nome=$_POST['nome'];
	$nat=$_POST['nat'];
	$nac=$_POST['nac'];
	$identidade=$_POST['identidade'];
	$emissor=$_POST['emissor'];
	$dt_emissao=$_POST['dt_emissao'];
	$est_civil=$_POST['est_civil'];
	$dt_nasc=$_POST['dt_nasc'];
	

 //Verificando se existe campos vazios
if (($cpf == "") ||($nome == "") || ($identidade == "") || ($dt_emissao == "") || ($emissor == "")
|| ($uf == "") || ($end == "") || ($est_civil == "") || ($dt_nasc == "") )
 {
  echo "<script>alert('Favor Preencher Todos os Campos com (*).');</script>";
	echo "<script>history.go(-1);</script>";
	
	die();
	}
// Conectando, escolhendo o banco de dados
include ("conexao.php");


$query = "INSERT INTO agente (codigo,cpf,nome,nat,nac,identidade,emissor,dt_emissao,est_civil,dt_nasc) VALUES ('$codigo','$cpf','$nome','$nat','$nac','$identidade',
'$emissor','$dt_emissao','$est_civil','$dt_nasc';
SELECT DATE_FORMAT($dt_nasc,"%d/%m/%y") as data; ";



mysql_query($query) or die('A consulta falhou!: ' . mysql_error());
echo $_SESSION;
// Fechar a conexão
mysql_close($link);
?> 
</BR><title>Inserir</title>
<a href='http://localhost/hcb/hcb.php'> <strong>Voltar </strong></a>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Partindo do principio que a informaçao vem com "/" (tipo 01/01/2008 , 1/1/2008 e etc) você pode usar o bacalhau abaixo

 

UPDATE tabela set campo_dia =

CONCAT(

RIGHT(CONCAT(20,SUBSTRING_INDEX(campo_dia,'/',-1)),4)

,'-',

RIGHT(CONCAT(0,SUBSTRING_INDEX(SUBSTRING_INDEX(campo_dia,'/',2),'/',-1)),2)

,'-',

RIGHT(CONCAT(0,SUBSTRING_INDEX(campo_dia,'/',1)),2)

)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei o código assim.

 

$query = "UPDATE agente set $dt_nasc=CONCAT(RIGHT(CONCAT(20,SUBSTRING_INDEX('$dt_nasc','/',-1)),4),'-',
RIGHT(CONCAT(0,SUBSTRING_INDEX(SUBSTRING_INDEX('$dt_nasc','/',2),'/',-1)),2),'-',
RIGHT(CONCAT(0,SUBSTRING_INDEX('$dt_nasc','/',1)),2))";

Mais dai está dando esse erro.

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '29/10/2008=CONCAT(RIGHT(CONCAT(20,SUBSTRING_INDEX('29/10/2008','/',-1)),4),'-', ' at line 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

O_O

$query = "UPDATE agente set $dt_nasc=CONCAT(RIGHT(CONCAT(20,SUBSTRING_INDEX('$dt_nasc','/',-1)),4),'-',

RIGHT(CONCAT(0,SUBSTRING_INDEX(SUBSTRING_INDEX('$dt_nasc','/',2),'/',-1)),2),'-',

RIGHT(CONCAT(0,SUBSTRING_INDEX('$dt_nasc','/',1)),2))";

será que é isto mesmo véi?

ali não seria o nome do campo que será atualizado? :mellow:

pq é disto que o mysql está acusando o erro.

ou seja, está algo assim:

"UPDATE agente set 29/10/2008=CONCAT(RIGHT(CONCAT(20,SUBSTRING_INDEX('29/10/2008','/',-1)),4),'-',

RIGHT(CONCAT(0,SUBSTRING_INDEX(SUBSTRING_INDEX('29/10/2008','/',2),'/',-1)),2),'-',

RIGHT(CONCAT(0,SUBSTRING_INDEX('29/10/2008','/',1)),2))";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mudando para o campo, ele não está cadastrando, dai preenxe o formulario e ele fala que cadastrou e quando vai olhar no banco não tem nada, alguma idéia?

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.