Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia,
Pessoal na tabela tem um campo com o nome: data_do_acidente o tipo dela é varchar(10).
Os dados estão gravados dessa maneira 10/10/2009, 11/10/2009, 12/10/2009 e assim por diante
Eu queria alterar o tipo dela para Date mais que não perdesse os valores já registrados. Porque se eu chegar e soh alterar o tipo, os valores já registrados ficarão 0000-00-00
Tem como solucionar esse problema?
Basicamente você pode fazer o seguinte:
UPDATE nome_tabela SET campo_data REVERSE(campo_data);
UPDATE nomoe_tabela SET campo_data REPLACE(campo_data, '/','-');
e depois é só correr p abraço.. ainda não, depois é só converter p tipo Date, aí sim, pode correr p abraço :)
[]
se você fizer como sugerido acima vai explodir o banco todo
select reverse('18/11/1983') -> 3891/11/81
faça o seguinte
update taba
set
data_do_acidente = CONCAT(right(data_do_acidente,4) ,'-', left(right(data_do_acidente,7),2) ,'-', left(data_do_acidente,2))
alter table taba modify column data_do_acidente date
>
se você fizer como sugerido acima vai explodir o banco todo
select reverse('18/11/1983') -> 3891/11/81
faça o seguinte
update taba
set
data_do_acidente = CONCAT(right(data_do_acidente,4) ,'-', left(right(data_do_acidente,7),2) ,'-', left(data_do_acidente,2))
alter table taba modify column data_do_acidente date
Eita erro tosco.. tem toda razão.. usar reverse aí vai dar um resultado totalmente do esperado.. é nisso q dá tentar resolver as coisas sem analisar.. valeu pela atenção..
http://dev.mysql.com/doc/refman/4.1/pt/string-functions.html