2013-11-24 3 views
0

У меня есть столбец, который, как мне кажется, был неверно объявлен в SQL. Он содержит данные, и я не хочу потерять данные. Я хочу изменить определение из varchar (int) на дату и время. Я был под впечатлением, что не могу просто изменить тип столбца?Изменение типа данных из varchar (int) на дату и время

+1

Tag РСУБД? –

ответ

0

Предполагая, что вы спрашиваете о SQL Server, вы можете просто изменить столбец, если все данные в этом столбце могут быть автоматически преобразованы SQL Server в новый тип.

Если данные не могут быть преобразованы автоматически (так как он содержит строки, которые не являются допустимой датой и времени), вам нужно будет сделать следующее:

  1. Создать новый столбец одного из типов данных даты и времени.
  2. Преобразование данных из старого в новый столбец.
  3. Капля старой колонки.
  4. Переименуйте новый столбец в имя старого столбца.
0

Предполагая, что RDBMS сервера SQL, сделайте резервную копию таблицы.

ALTER TABLE dbo.YourTable 
    ALTER COLUMN YourColumnName datetime 
0

Попробуйте его просто пример:

Alter Table testing 
Add some_dt DateTime Default('1900-01-01') NOT NULL 
GO 

Update testing 
    Set some_dt = Convert(DateTime,Tmp_some_dt) 
GO 

Alter Table testing 
    DROP Column Tmp_some_dt 
GO 

select * from testing 
go 
Смежные вопросы