Как преобразовать текст в дату в SQL Server 2008? - PullRequest
0 голосов
/ 24 января 2010

У меня есть таблица с текстовым полем [nvarchar (10)]

как преобразовать это поле в дату?

когда я пытаюсь изменить в поле в режиме дизайна - я получаю это:

Невозможно изменить таблицу.

Ошибка преобразования при преобразовании даты и / или времени из символьной строки.

есть ли какой-нибудь запрос, который я могу выполнить, чтобы сделать это?

заранее благодарен

1 Ответ

3 голосов
/ 24 января 2010

Вы можете выполнить следующие шаги:

  • Создать новый столбец даты и времени, обнуляемый
  • Обновить этот столбец правильными значениями
  • Оставьте свой исходный столбец
  • Переименуйте и настройте столбец так, чтобы он не принимал значения NULL, если это применимо

Попробуйте этот образец:

CREATE TABLE #Sample
(
    FieldAsText varchar(10) NOT NULL
);
GO

INSERT INTO #Sample VALUES ('2009-01-24');

ALTER TABLE #Sample ADD FieldAsDate datetime NULL
GO

UPDATE #Sample SET FieldAsDate = CONVERT(DATETIME, FieldAsText)

SELECT * FROM #Sample 

ALTER TABLE #Sample DROP COLUMN FieldAsText
ALTER TABLE #Sample ALTER COLUMN FieldAsDate datetime NOT NULL
GO

SELECT * FROM #Sample 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...