Импорт плоского файла в SQL Server хранит неверные даты в базе данных - PullRequest
0 голосов
/ 19 июня 2019

Я студент SQL, которому поручено загружать данные в SQL Server для компании, с которой я стажируюсь.

Я попытался загрузить несколько плоских файлов с датами, отформатированными как 1/23/04, в SSMS, и при работе с мастером предварительный просмотр дат выполняется правильно. Как только они загружены в фактическую базу данных и выполнен запрос select, все даты возвращаются в формате 2023-01-04.

Я не уверен, где вообще начать это исправлять. Я загрузил столбцы как nvarchar(50), а не date, datetime и datetime2, чтобы посмотреть, будет ли это иметь значение, и каждый случай возвращает один и тот же формат. Это настройка в плоском файле, SSMS или на самом компьютере?

1 Ответ

0 голосов
/ 19 июня 2019

В SSIS введите столбец (с датами) в виде строки и добавьте производное преобразование столбца, которое преобразует столбец (используя функцию подстроки) в правильную дату. SQL Server любит видеть даты как ГГГГ-ММ-ДД, поэтому без явного указания, как читать строку, по умолчанию он думает, что введенная дата имеет этот формат.

Если вы используете SQL Server (SSMS), вы должны ввести его в виде строки (char (8)), а затем использовать функции приведения или преобразования, чтобы изменить строку в дату. Затем можно выполнить «Изменить столбец удаления таблицы», чтобы удалить столбец версии строки даты.

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