Ir para conteúdo

POWERED BY:

Arquivado

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

Walter Chilomer

SUBSTR TEIMOSO - Não atualiza a tabela.

Recommended Posts

Mestres,

 

Tenho o seguinte código em PHP:

 

$pcp_data_Y = substr($data,0,4);
$pcp_data_M = substr($data,-5,3);
$pcp_data_YM = substr($data,0,7);
Sendo que, por exemplo, pcp_data = 2015-09-07 ou $data = 2015-09-07
Grava corretamente, a saber:
$pcp_data_Y = substr($data,0,4); = 2015
$pcp_data_M = substr($data,-5,3); = 09
$pcp_data_YM = substr($data,0,7); = 2015-09

 

Porém, atualizando a tabela em MySQL, conforme código:

 

UPDATE tab_pcp SET pcp_data_Y=substr(pcp_data,0,4) = NÃO ATUALIZA

UPDATE tab_pcp SET pcp_data_M=substr(pcp_data,-5,3) = 09

UPDATE tab_pcp_YM SET pcp_data_YM=substr(pcp_data,0,7) = NÃO ATUALIZA

 

Utilizando o phpMyAdmin ou em linha de código do MySQL.

 

O MySQL não retorna nenhum erro, apenas a mensagem:

Rows matched: 4480 Changed: 0 Warnings: 0

para a primeira e terceira opção.

Onde está o erro?

 

Quem pode dar a luz???

 

Fiquem bem!!!

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Motta,

 

O campo é date (MySQL).

 

Os campos onde quero gravar os valores desmembrados são CHAR.

 

Porém, porque o MySQL só atualiza essa linha? UPDATE tab_pcp SET pcp_data_M=substr(pcp_data,-5,3)

 

Fique bem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

lokaodomau,

 

Testei sua sugestão, mas não acontece nada.

 

Copiei os dados da coluna pcp_data para a coluna pcp_data_Y (como DATE). Transformei essa coluna para CHAR.

Criei uma coluna pcp_data_YY como CHAR 4 caracteres.

Fiz o seguinte comando:

UPDATE tab_pcp SET pcp_data_YY=SUBSTR(pcp_data_y,0,4).

 

O MySQL não aponta nenhum erro, porém atualiza 0 registros.

 

Continuo na expectativa.

 

Obrigado pela dica.

 

Fique bem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera,

Resolvido.

Muito simples. Diferentemente do comando em PHP, o comando em MySQL tem uma pequena diferença:

 

O Código abaixo em PHP,

$pcp_data_Y = substr($data,0,4);

$sql=UPDATE tab_pcp SET pcp_data_Y = '$pcp_data_Y';

$res = mysql_query($sql);

Funciona perfeitamente bem.

 

Porém em MySQL fica assim:

UPDATE tab_pcp SET pcp_data_Y=SUBSTR(pcp_data,1,4);

 

Então, teriamos que somar +1 (?) na primeira sequencia em SUBSTR.

 

Obrigado a todos.

Fiquem bem.

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.