sql >> Database >  >> RDS >> Sqlserver

Fout bij het converteren van dbtype_dbdate naar datum

hoop dat dit helpt (ik gebruik geen SQL Server 2012).
Als uw ODBC naar db2 linkt, wordt voor datumbereik b.v. '0001-01-01', je moet casten. Normaal gesproken werkt dit.

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

Als u het resultaat nog steeds als datum wilt, gebruikt u gewoon CASE en vervangt u de ongeldige datum door uw standaarddatum, bijvoorbeeld

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

Mogelijk moet u CURRENT_DATE wijzigen in CURRENT_TIMESTAMP en de samenstelling van CASE hangt af van uw db-server en uw vereisten




  1. MySQL:Selecteer Kolomnamen die een string bevatten

  2. Hoe de tijd te formatteren van dd:uu:mm:ss naar alleen uu:mm:ss in SQL-server?

  3. mysql-proces kan niet worden gestopt

  4. Wanneer indexeert Oracle null-kolomwaarden?