SQL Server: лучший способ вставить «мм / дд / гггг» в столбец «дата» или «datatime2»? - PullRequest
0 голосов
/ 31 марта 2019

У меня есть набор значений в виде mm/dd/yyyy, хранящихся в CSV. Примером является 06/26/2017. Я обнаружил, что не могу вставить его в столбец, объявленный как тип date или datetime2. Я могу изменить этот (пустой) столбец сначала на varchar, а затем вставить.

Однако на этом этапе, после вставки в качестве varchars, как я могу преобразовать этот столбец в «date» или «datatime2»?

Попытка установить общесистемный формат не работает:

sql> SET DATEFORMAT 'mm/dd/yyyy'
[2019-03-31 09:42:04] [S0001][2741] SET DATEFORMAT date order 'mm/dd/yyyy' is invalid.

1 Ответ

0 голосов
/ 31 марта 2019

Если тип данных столбца date, преобразуйте строку в date с помощью:

convert(date, '03/31/2019', 101)

и вставьте ее.Смотрите демо .Подробнее о convert () Редактировать :Создайте столбец varchar и столбец даты.Вставьте значения в столбец varchar и, когда процесс завершится, обновите столбец даты, преобразовав каждое значение в дату, например:

UPDATE tablename
SET datecolumn = convert(date, varcharcolumn, 101) 

После этого вы можете удалить столбец varchar.

...