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

Fejl ved konvertering af dbtype_dbdate til dato

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




  1. Sådan ændres en standard MySQL/MariaDB-datakatalog i Linux

  2. XML eller databasetabel til at gemme indstillinger

  3. Beregn forskellen mellem resultaterne af to count(*)-forespørgsler baseret på 2 tabeller i PostgreSQL

  4. Docker-maskine på Mac:Kan du ikke se monterede volumener på docker-vært/docker-maskine? Hvor opbevares mængder fysisk?