sql >> Databasteknik >  >> RDS >> Sqlserver

Fel vid konvertering av dbtype_dbdate till datum

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




  1. Heroku Postgres Connection från localhost PHP-applikation

  2. MySQL-tabell PRIMÄR NYCKELfråga?

  3. Hur anropar jag mina C++-binärfiler via CGI-gränssnittet?

  4. Lagrad procedur för att ta bort poster i Oracle DBMS