SQL Server: измените тип данных столбца с datetime2 на nvarchar, одновременно конвертируйте существующие данные - PullRequest
0 голосов
/ 29 апреля 2019

Руководство хотело бы изменить столбец в нашей базе данных с datetime2 на nvarchar, в основном сохраняя строку даты, а не значение даты и времени.Каков наилучший способ сделать это?В столбце уже есть данные, поэтому мне нужно изменить тип данных, а также преобразовать существующие значения в текст.

(я уже пытался отодвинуть это, но у них есть причины, по которымздесь не очень актуально)

1 Ответ

3 голосов
/ 29 апреля 2019

Управление не так.Значения даты / времени должны храниться с использованием правильных типов данных.Как правило, хранение их в виде строк не рекомендуется.

Однако это легко сделать.На самом деле, вы можете просто сделать:

alter table t alter datecol nvarchar(255);

Если вам нужны данные в определенном формате, затем используйте update:

update t
    set datecol = convert(nvarchar(255), convert(datetime2, datecol), ?);

Примечание: если вы просто хотитеЧтобы получить «красивую» дату из таблицы, используйте вычисляемый столбец:

alter table t add datecol_pretty as (convert(nvarchar(255), datecol, ?);

Где ? - это нужный вам формат конвертации.(Или используйте format().)

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