Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Fehler beim Konvertieren von dbtype_dbdate in das Datum

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