sql >> Databasteknik >  >> RDS >> Oracle

Ser ORA-01858:ett icke-numeriskt tecken hittades där ett numeriskt tecken förväntades

I grund och botten försöker du lagra en sträng som representerar ett datum i ett tidsstämpelfält. Om du ersätter:

TO_CHAR(TS, 'DD-MON-YYYY HH AM')

av

TRUNC(TS, 'hh24')

på alla fyra ställena borde det fungera.

INSERT INTO ENROLLMENTS (DATE,PARTNER_NAME,ENROLLMENTS)
    SELECT   TRUNC(TS, 'hh24') AS DATE, mrch_bnft_cd, COUNT(*)
    FROM     ENROLLMENTS 
    WHERE    TS > trunc(sysdate-1/24, 'HH') + 5/24 
    AND      TS < trunc(sysdate, 'HH') + 5/24
    GROUP BY TRUNC(TS, 'hh24'), mrch
    ORDER BY TRUNC(TS, 'hh24'), mrch_bnft



  1. Inner Sammanfoga många till många tabeller med filter i MySQL

  2. Fråga för att få föräldraposter med underordnade poster, följt av nästa förälder-underordnade poster i mysql

  3. Hur man ansluter sig till tabeller med ett antal datum utan att behöva ha procedurer

  4. Går med och tar bort kartesiska produkter