Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Errore durante la conversione di dbtype_dbdate ad oggi

spero che questo aiuti (non sto usando SQL Server 2012).
se il tuo ODBC si collega a db2, per l'intervallo di date non supportato, ad es. '0001-01-01', devi eseguire il cast. Normalmente funziona.

SELECT * 
FROM   OPENQUERY(LINKEDSERVERNAME, 'SELECT Product, 
                                       CAST(DateLastReceipt AS CHAR(10))
                                FROM   ProductTable')

Se vuoi ancora il risultato come data, usa CASE e sostituisci la data non valida con la tua data predefinita, ad es.

SELECT *
FROM   OPENQUERY(LINKEDSERVERNAME, 'SELECT Product, 
                               ,CASE WHEN DateLastReceipt AS CHAR(10)) = ''0001-01-01''
                                       THEN CURRENT_DATE
                                     ELSE DateLastReceipt 
                                     END
                                FROM   ProductTable')

Potrebbe essere necessario modificare CURRENT_DATE in CURRENT_TIMESTAMP e la composizione CASE dipende dal tuo server db e dalle tue esigenze