Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Bad timestamp external representation Error in Netezza

Tags:

sql

netezza

I was running below query in Netezza and getting mentioned error.

Query:

SELECT * FROM WORKORDER SRC  
    INNER JOIN  APPOINTMENT TRG
        ON SRC.ACCESSID = TRG.SEEKER_ID 
        AND (COALESCE(SRC.SLAEXPIRY, '') = COALESCE(TRG.SLA_EXPIRY_DATE_TS, ''))

Error:

ERROR [HY000] ERROR:  Bad timestamp external representation ''

As I can see NULL values sometimes for SLAEXPIRY and SLA_EXPIRY_DATE_TS columns tried following option, no luck though

SELECT * FROM WORKORDER SRC  
    INNER JOIN  APPOINTMENT TRG
        ON SRC.ACCESSID = TRG.SEEKER_ID 
        AND case when COALESCE(SRC.SLAEXPIRY, '') is not null then COALESCE(SRC.SLAEXPIRY, '')
                            else NULL end = case when COALESCE(TRG.SLA_EXPIRY_DATE_TS, '') is not null then COALESCE(TRG.SLA_EXPIRY_DATE_TS, '')
                                            else NULL end
like image 706
SMPH Avatar asked Jun 21 '26 23:06

SMPH


1 Answers

The fundamental issue here is that the empty string (i.e. '') cannot be cast to a timestamp.

TESTDB.ADMIN(ADMIN)=> select coalesce(current_timestamp, '');
ERROR:  Bad timestamp external representation ''

The secondary issue, of course, is that NULLs don't JOIN. The following query should work for you if you would like to JOIN the NULLs anyway. Don't expect great performance from this expression based join.

SELECT *
FROM WORKORDER SRC
   INNER JOIN APPOINTMENT TRG
   ON SRC.ACCESSID = TRG.SEEKER_ID
   AND
      (
         (
            SRC.SLAEXPIRY = TRG.SLA_EXPIRY_DATE_TS
         )
      OR
         (
            SRC.SLAEXPIRY           IS NULL
         AND TRG.SLA_EXPIRY_DATE_TS IS NULL
         )
      )
like image 167
ScottMcG Avatar answered Jun 23 '26 13:06

ScottMcG



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!