como alterar uma coluna no ib6?
estou tentando alterar um coluna de varchar para date,estou tentando assim
alter table tb_movimentacao
alter column dia type date
mas não da certo????
alter table tb_movimentacao
alter column dia type date
mas não da certo????
Jiu
Curtidas 0
Respostas
Vinicius2k
20/05/2003
a forma correta seria assim, mas não faça...
1) criar uma coluna temporária : alter table tb_movimentacao add temp_dia varchar(10);
2) copiar os dados da coluna dia para a coluna temporaria : update tb_movimentacao set temp_dia = dia;
3) dar um drop(excluir) na coluna dia (alter table tb_movimentacao drop dia)
4) incluir novamente a coluna dia com o novo tipo : alter table tb_movimentacao add dia date;
5) copiar os dados da coluna temporária para a coluna dia : update tb_movimentacao set dia = temp_dia ....
Isso daria certo se ao final dia e temp_dia fossem do mesmo tipo, mas vc tem q converter os valores de temp_dia para tipo date e isso, infelizmente, eu não sei como fazer... e acho q realmente seja um problema inclusive o formato de data do interbase eh diferente...
Estes passos funcionarão sempre para tipos de dados iguais...
1) criar uma coluna temporária : alter table tb_movimentacao add temp_dia varchar(10);
2) copiar os dados da coluna dia para a coluna temporaria : update tb_movimentacao set temp_dia = dia;
3) dar um drop(excluir) na coluna dia (alter table tb_movimentacao drop dia)
4) incluir novamente a coluna dia com o novo tipo : alter table tb_movimentacao add dia date;
5) copiar os dados da coluna temporária para a coluna dia : update tb_movimentacao set dia = temp_dia ....
Isso daria certo se ao final dia e temp_dia fossem do mesmo tipo, mas vc tem q converter os valores de temp_dia para tipo date e isso, infelizmente, eu não sei como fazer... e acho q realmente seja um problema inclusive o formato de data do interbase eh diferente...
Estes passos funcionarão sempre para tipos de dados iguais...
GOSTEI 0
Obubiba
20/05/2003
Completando a dica do amigo vncsoliveira, para alterar um tipo de dado para outro, utilize o comando Cast():
update tb_movimentacao set dia = cast(temp_dia as date);
update tb_movimentacao set dia = cast(temp_dia as date);
GOSTEI 0
Vinicius2k
20/05/2003
Legal... olha como a gente não perde nada em tentar ajudar ... ajudei um colega ateh aonde eu pude e aprendi um pouco com outro colega...
:D
:D
GOSTEI 0