håber dette hjælper (jeg bruger ikke SQL Server 2012).
hvis din ODBC linker til db2, for datointerval ikke understøttet f.eks. '0001-01-01', skal du kaste. Normalt virker dette.
SELECT *
FROM OPENQUERY(LINKEDSERVERNAME, 'SELECT Product,
CAST(DateLastReceipt AS CHAR(10))
FROM ProductTable')
Hvis du stadig vil have resultatet som dato, skal du blot bruge CASE og erstatte den ugyldige dato med din standarddato, f.eks.
SELECT *
FROM OPENQUERY(LINKEDSERVERNAME, 'SELECT Product,
,CASE WHEN DateLastReceipt AS CHAR(10)) = ''0001-01-01''
THEN CURRENT_DATE
ELSE DateLastReceipt
END
FROM ProductTable')
Du skal muligvis ændre CURRENT_DATE til CURRENT_TIMESTAMP, og CASE-sammensætning afhænger af din db-server og dit krav