Формат даты пакета служб SSIS - PullRequest
0 голосов
/ 01 марта 2019

У меня есть фабрика данных в Azure, в которой есть конвейер для выполнения пакета служб SSIS.В этот пакет включен сценарий извлечения, который преобразует значение даты из 2019-01-13 00:00:00 в 2019-01-13.После этого приложение логики берет файл extract.txt и отправляет его в sftp, чтобы поместить в папку.

Как вы можете видеть из моего сценария извлечения в SSMS, преобразовывающего тип данных varchar в дату (я получаю дату в Unix), для даты прибытия указывается следующее значение.

Скрипт

Script

Просмотр данных

Date Value

Однако, когда я открываю свой файл extract.txt, дата отображается как: 2019-01-13 00:00:00.0000000

Может кто-нибудь сказать мне, почему они думают, что это может происходить?Спасибо

1 Ответ

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

Когда вы отображаете столбец даты в плоский файл, он будет включать время, даже если он не отображается в средстве просмотра данных или ssms.

Решение служб SSIS

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

LEFT((DT_WSTR,50)DATEADD("s", [start], (DT_DATE)"1970-01-01",10)

Выход

2019-01-13

На основе официальной документации Cast (выражение SSIS) :

Когда строка приводится к DT_DATEили наоборот, используется локаль преобразования.Однако дата указывается в формате ISO ГГГГ-ММ-ДД независимо от того, использует ли языковой стандарт формат ISO.

Решение SQL Server

Используйте следующую команду SQL:

select convert(varchar(10), dateadd(S, [start], '1970-01-01'),120)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...