Ich hoffe, das hilft (ich verwende SQL Server 2012 nicht).
Wenn Ihr ODBC-Link auf db2 verweist, wird der Datumsbereich nicht unterstützt, z. '0001-01-01', müssen Sie casten. Normalerweise funktioniert das.
SELECT *
FROM OPENQUERY(LINKEDSERVERNAME, 'SELECT Product,
CAST(DateLastReceipt AS CHAR(10))
FROM ProductTable')
Wenn Sie das Ergebnis trotzdem als Datum haben möchten, verwenden Sie einfach CASE und ersetzen Sie das ungültige Datum durch Ihr Standarddatum, z. B.
SELECT *
FROM OPENQUERY(LINKEDSERVERNAME, 'SELECT Product,
,CASE WHEN DateLastReceipt AS CHAR(10)) = ''0001-01-01''
THEN CURRENT_DATE
ELSE DateLastReceipt
END
FROM ProductTable')
Möglicherweise müssen Sie CURRENT_DATE in CURRENT_TIMESTAMP ändern, und die CASE-Zusammensetzung hängt von Ihrem Datenbankserver und Ihren Anforderungen ab