2015-11-06 2 views
0

J'ai un serveur SQL Server lié pour accéder à une base de données Informix, et j'utilise openquery pour exécuter les requêtes, puis insérer les résultats dans une table de serveur SQL.ERREUR SERVEUR SQL: "La conversion d'un type de données datetime2 en un type de données datetime a entraîné une valeur hors plage." (informix to sql server)

Le problème est que lorsque je lance un code comme:

INSERT INTO table_name 
(date, comments, user) 
SELECT f.date 
    , f.comments 
    , f.user 
    FROM OPENQUERY(LINKED_SERVER_NAME, 
        'select date 
         , description as comments 
         , user_name as user 
        from tsperson' 
       ) AS f 

Je suis cette erreur:

"The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value."

Je l'ai déjà essayé de lancer mais cela ne fonctionnait.

J'ai cherché ici et dans Google pour une réponse mais non fondée.

Alors, quelqu'un peut-il m'aider?

+1

Cette pourrait aider - http://stackoverflow.com/questions/7386360/the-conversion-of-a-datetime2-data-type-to-a-datetime-data-type-resulted-in-an-o – MusicLovingIndianGirl

+1

Paddy réponse était plus expliqué et a des alternatives très claires à moi à la façon de résoudre le pro blem. Merci quand même. –

Répondre

1

Il semblerait que le champ date dans votre tableau que vous insérez dans utilise un type de données datetime. Vous recevez des données dans un format datetime2 qui est hors de portée d'un type datetime valide.

Vous devrez peut-être mettre à jour la table afin que date soit un type datetime2 ou filtrer les données entrantes pour supprimer les dates que vous ne pouvez pas prendre en charge.


datetime Date rage: Janvier 1 1753, jusqu'au 31 Décembre, 9999

datetime2 plage de dates: 0001-01-01 9999-12-31 par

Voir https://docs.microsoft.com/en-us/sql/t-sql/data-types/datetime2-transact-sql

+0

Merci pour l'aide! –