doufám, že to pomůže (nepoužívám SQL Server 2012).
pokud vaše ODBC odkazuje na db2, pro časové období není podporováno, např. '0001-01-01', musíte přenést. Normálně to funguje.
SELECT *
FROM OPENQUERY(LINKEDSERVERNAME, 'SELECT Product,
CAST(DateLastReceipt AS CHAR(10))
FROM ProductTable')
Pokud přesto chcete výsledek jako datum, použijte CASE a nahraďte neplatné datum výchozím datem, např.
SELECT *
FROM OPENQUERY(LINKEDSERVERNAME, 'SELECT Product,
,CASE WHEN DateLastReceipt AS CHAR(10)) = ''0001-01-01''
THEN CURRENT_DATE
ELSE DateLastReceipt
END
FROM ProductTable')
Možná budete muset změnit CURRENT_DATE na CURRENT_TIMESTAMP a složení CASE závisí na vašem db serveru a vašich požadavcích