Проблема LoadData из SQL Server 2012 в 2008 R2 с загрузкой типа даты в столбец типа даты и времени

Мне нужно загрузить данные из SQL Server 2012 в SQL Server 20108 R2. У меня есть столбец с типом данных date, а в целевой таблице у меня есть тип данных datetime. Когда я пытаюсь загрузить данные с помощью SSIS, я получаю сообщение об ошибке, говорящее о недопустимом формате даты, и иногда я получаю сообщение об ошибке.

Source : 


CREATE TABLE SourceTable(
    [SSNO] [char](9) NOT NULL,
    [SH_CHANGE_DATE] [date] NULL,
    [SH_REASON_CODE] [char](2) NOT NULL,
    [SH_ANN_SALARY] [decimal](8, 2) NOT NULL,
    [GRADE] [char](2) NOT NULL,
    [ITEM] [char](4) NOT NULL,
    [MULTI_POSITNBR] [char](4) NOT NULL,
    [STEP] [char](2) NOT NULL,
    [OFF_STEP] [char](1) NOT NULL,
    [SH_TITLE_NAME] [char](30) NOT NULL,
    [SH_CHANGE_AMT] [decimal](7, 2) NOT NULL,
    [SH_DIV_DIST_IND] [char](4) NOT NULL,
    [SH_BUDGET] [char](3) NOT NULL,
    [SH_ENGNO] [char](2) NOT NULL,
    [SH_RCDADD_DATE] [date] NULL,
    [SH_RCDADD_TIME] [time](0) NULL,
    [SH_OCC_CATEGORY] [char](1) NOT NULL,
    [SH_FULL_PART_CD] [char](1) NOT NULL,
    [SH_SUPVY_CLASS] [char](1) NOT NULL,
    [EMPLOYEE_NUMBER] [char](9) NOT NULL,
    [T101_TSAL_HIST_PRIMARY_KEY]  AS ((substring([SSNO],(1),(9))+substring(CONVERT([varchar],[SH_CHANGE_DATE],(112)),(1),(8)))+substring([SH_REASON_CODE],(1),(2))) PERSISTED NOT NULL,
 CONSTRAINT SourceTableconstrain PRIMARY KEY CLUSTERED 
(
    [Source_PRIMARY_KEY] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

DESTINATION : 


CREATE TABLE TableName(
    [SSNO] [char](9) NOT NULL,
    [SH_CHANGE_DATE] [datetime] NOT NULL,
    [SH_REASON_CODE] [char](2) NOT NULL,
    [SH_ANN_SALARY] [money] NULL,
    [GRADE] [char](2) NULL,
    [ITEM] [char](4) NULL,
    [MULTI_POSITNBR] [char](4) NULL,
    [STEP] [char](2) NULL,
    [OFF_STEP] [char](1) NULL,
    [SH_TITLE_NAME] [varchar](30) NULL,
    [SH_CHANGE_AMT] [money] NULL,
    [SH_DIV_DIST_IND] [char](4) NULL,
    [SH_BUDGET] [char](3) NULL,
    [SH_ENGNO] [char](2) NULL,
    [SH_RCDADD_DATE] [datetime] NULL,
    [SH_RCDADD_TIME] [varchar](6) NULL,
    [SH_OCC_CATEGORY] [char](1) NULL,
    [SH_FULL_PART_CD] [char](1) NULL,
    [SH_SUPVY_CLASS] [char](1) NULL,
    [EMPLOYEE_NUMBER] [char](9) NULL,
 CONSTRAINT Tablename PRIMARY KEY CLUSTERED 
(
    [SSNO] ASC,
    [SH_CHANGE_DATE] ASC,
    [SH_REASON_CODE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

На первый взгляд, это кажется маловероятным. Механизм потока данных служб SSIS строго типизирован. Если исходным столбцом является дата и время, а целевым также является дата и время, и это SQL Server для SQL Server, не должно происходить никакого преобразования. Опубликуйте определения таблиц как для источника, так и для цели, а также фактическое сообщение об ошибке и, желательно, снимок экрана с потоком данных, и этого должно быть достаточно, чтобы дать ответ или задать более острый вопрос.

billinkc 23.12.2020 23:07

Пожалуйста, найдите запрашиваемую информацию

kfb 23.12.2020 23:58

Источник - дата, а назначение - тип данных datetime\

kfb 24.12.2020 00:01

И Sql Server 2012, и Sql Server 2008 R2 подошли к концу. Это означает, что они больше не получают никаких исправлений... даже для критических проблем с безопасностью. Опасно и безответственно продолжать использовать эти старые версии. Модернизация — это работа №1.

Joel Coehoorn 24.12.2020 00:02

@JoelCoehoorn 2012 еще не EoL, это в 2022 году; на данный момент он находится в расширенной поддержке. Однако 2008 год стал хитом EoL больше года назад. 2012 до сих пор получает обновления безопасности, на самом деле оно было получено в феврале этого года. KB4532098

Thom A 24.12.2020 00:18

я понимаю, что нет поддержки, но мне нужно решить эту проблему, если это возможно

kfb 24.12.2020 00:27

Опять же, опубликуйте определения таблиц как для источника, так и для цели, а также скриншот потока данных. Если вашу проблему невозможно воспроизвести, мы не сможем помочь вам ее исправить. Прочтите статью Справочного центра о Как спросить, чтобы улучшить свой вопрос и противостоять отрицательным голосам.

billinkc 24.12.2020 19:02
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
7
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

ребята, спасибо за отзыв, я решаю эту проблему сам. Чтобы загрузить данные с даты на дату и время с сервера sql 2012 на 2008r2, я использовал два пакета ssis. В одном пакете ssis я преобразовал дату в тип данных datetime (n) для значения столбца, а в следующем пакете ssis скопировал значение столбца из загруженного место изначально до места назначения . Это приводит к тому, что в месте назначения используется тот же тип данных, но при этом загружаются данные из значения столбца типа даты в дату и время.

Другие вопросы по теме