j'espère que cela vous aidera (je n'utilise pas SQL Server 2012).
si votre ODBC est lié à db2, pour une plage de dates non prise en charge, par ex. '0001-01-01', vous devez lancer. Normalement, cela fonctionne.
SELECT *
FROM OPENQUERY(LINKEDSERVERNAME, 'SELECT Product,
CAST(DateLastReceipt AS CHAR(10))
FROM ProductTable')
Si vous voulez toujours que le résultat soit une date, utilisez simplement CASE et remplacez la date invalide par votre date par défaut, par exemple
SELECT *
FROM OPENQUERY(LINKEDSERVERNAME, 'SELECT Product,
,CASE WHEN DateLastReceipt AS CHAR(10)) = ''0001-01-01''
THEN CURRENT_DATE
ELSE DateLastReceipt
END
FROM ProductTable')
Vous devrez peut-être changer CURRENT_DATE en CURRENT_TIMESTAMP et la composition de CASE dépend de votre serveur de base de données et de vos besoins