Вот как бы я это сделал.
Сначала создайте и заполните образец таблицы ( Пожалуйста сохраните этот шаг в ваших будущих вопросах):
CREATE TABLE Sample
(
DateTimeColumn varchar(50),
FloatColumn varchar(50)
);
INSERT INTO Sample(DateTimeColumn, FloatColumn) VALUES ('01.01.2000', '124.5');
Затем - Измените таблицу, чтобы добавить столбцы с правильным типом данных.
ALTER TABLE Sample
ADD AsDateTime DateTime,
AsFloat float;
Заполните новые столбцы:
UPDATE Sample
SET AsDateTime = TRY_CONVERT(datetime, DateTimeColumn, 105),
AsFloat = TRY_CAST(FloatColumn AS float);
На этом этапе вам следует остановиться и проверить, действительно ли выдействительно получил правильные значения. После проверки данных новых столбцов вы можете удалить старые столбцы
ALTER TABLE Sample
DROP COLUMN DateTimeColumn;
ALTER TABLE Sample
DROP COLUMN FloatColumn;
и переименовать новые столбцы:
EXEC sp_rename 'dbo.Sample.AsDateTime', 'DateTimeColumn', 'COLUMN';
EXEC sp_rename 'dbo.Sample.AsFloat', 'FloatColumn', 'COLUMN';
Быстрый выбор для проверки изменения:
SELECT DateTimeColumn, FloatColumn
FROM Sample;
Результаты:
DateTimeColumn FloatColumn
2000-01-01 00:00:00 124.5