hoppas detta hjälper (jag använder inte SQL Server 2012).
om din ODBC länkar till db2, för datumintervall stöds inte t.ex. '0001-01-01' måste du casta. Normalt fungerar detta.
SELECT *
FROM OPENQUERY(LINKEDSERVERNAME, 'SELECT Product,
CAST(DateLastReceipt AS CHAR(10))
FROM ProductTable')
Om du fortfarande vill ha resultatet som datum, använd bara CASE och ersätt det ogiltiga datumet till ditt standarddatum, t.ex.
SELECT *
FROM OPENQUERY(LINKEDSERVERNAME, 'SELECT Product,
,CASE WHEN DateLastReceipt AS CHAR(10)) = ''0001-01-01''
THEN CURRENT_DATE
ELSE DateLastReceipt
END
FROM ProductTable')
Du kan behöva ändra CURRENT_DATE till CURRENT_TIMESTAMP och CASE-sammansättningen beror på din db-server och dina krav