-1

列には形式 の経度値があります(+ or -) 36:12:20:0654。に変更したい(+ or -) 36.12200654。それ、どうやったら出来るの?私はこのコマンドを試しました:

alter table_name alter column column_name int;

ただし、符号なしで値を 36 に変更します。

4

1 に答える 1

0

私が思いついたものの複雑さを誇りに思っているわけではありませんが、それはうまくいきます:

alter table table_name add column temp double;
update table_name set temp = concat(substr(column_name, 1, position(':' in column_name) - 1), '.', replace(substr(column_name, position(':' in column_name)), ':', ''));
alter table table_name drop column column_name;
alter table table_name change column temp column_name double; 

更新: コメント内の値の新しい形式に基づいて、更新は次のようになります。

update table_name set temp = concat(substr(column_name, 1, position(':' in column_name) - 1), '.', replace(replace(substr(column_name, position(':' in column_name)), ':', ''), '.', ''))
于 2015-07-14T18:01:08.700 に答える