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)), ':', ''), '.', ''))
Другие вопросы по тегам