MariaDB конвертирует тип столбца varchar в int
Столбец имеет значения долготы формы (+ or -) 36:12:20:0654
, Я хочу изменить их на (+ or -) 36.12200654
, Как я могу это сделать? Я попробовал эту команду:
alter table_name alter column column_name int;
но это меняет значение на 36 без знака.
1 ответ
Решение
Я не горжусь сложностью того, что я придумал, но это помогает:
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)), ':', ''), '.', ''))