У меня есть пакет служб SSIS с задачей «Выполнить» SQL, которая выполняет следующий запрос:
SELECT startDate = ISNULL (MAX (c.FileDate), DATEADD (dd, -8, GETDATE ()))
, endDate = GETDATE ()
, fileDate = CAST(FORMAT (GETDATE (), 'yyyyMMddHHmmss') AS VARCHAR(16))
FROM stage.MI_ChildSupportFile c
WHERE RecordType = 3
AND RecordSent = 1;
В таблице MI_ChildSupportFile нет данных, поэтому «DATEADD (dd, -8, GETDATE ()» "выполняется ли код для startDate
.
Когда я запускаю его в SSMS, он работает правильно.
Однако, когда я запускаю пакет, endDate и fileDate верны, но startDate
неверно. startDate
обычно на несколько минут или несколько часов меньше, чем endDate.
Я проверил случайные переменные, параметры, жестко заданные значения и т. д. c., но не нашел причин для startDate
неверно при запуске в SSIS.
Я использую Microsoft SQL Server 2014 - v12.0.2000.8 (X64) и Visual Studio 2019 (версия 16.4.3).
Я потратил около 8 часов на то, чтобы попробовать все, о чем я могу подумать (используя COALESCE вместо ISNULL, используя startDate = (SELECT ...) и т. Д. c.), Но все, что я изменяю, не имеет никакого значения.
Я пришел к выводу, что это может быть ошибка служб SSIS.
Имеет все когда-нибудь видели что-нибудь подобное? Я в своем уме и не уверен, что попробовать дальше. Я гуглил это, но безрезультатно.
Любые предложения / советы приветствуются,
Бретт