sql >> Databasteknik >  >> RDS >> Oracle

ORA-00936 När du använder datumfunktionen i oracle select-satsen

Om du vill ha the_date fältet som ett verkligt datum:

select trunc(date '1970-01-01' + datetimeorigination / (24*60*60)) as the_date,
  to_char(date '1970-01-01' + datetimeorigination / (24*60*60),
    'HH24') as the_hour,
  count(record_id)
from table_a
group by trunc(date '1970-01-01' + datetimeorigination / (24*60*60)),
  to_char(date '1970-01-01' + datetimeorigination / (24*60*60), 'HH24');

THE_DATE  THE_HOUR COUNT(RECORD_ID)
--------- -------- ----------------
24-SEP-13 14                      1 
20-SEP-13 18                      1 

Om du vill ha timvärdet som ett tal kan du slå in det fältet i en to_number() ringa upp. Om detta är för visning bör du uttryckligen formatera datumet också:

select to_char(date '1970-01-01' + datetimeorigination / (24*60*60),
    'YYYY-MM-DD') as the_date,
  to_char(date '1970-01-01' + datetimeorigination / (24*60*60),
    'HH24') as the_hour,
  count(record_id)
from table_a
group by to_char(date '1970-01-01' + datetimeorigination / (24*60*60),
    'YYYY-MM-DD'),
  to_char(date '1970-01-01' + datetimeorigination / (24*60*60), 'HH24');

THE_DATE   THE_HOUR COUNT(RECORD_ID)
---------- -------- ----------------
2013-09-24 14                      1 
2013-09-20 18                      1 

Eller med ett fält för datum och tid tillsammans:

select to_char(date '1970-01-01' + datetimeorigination / (24*60*60),
    'YYYY-MM-DD HH24') as the_hour,
  count(record_id)
from table_a
group by to_char(date '1970-01-01' + datetimeorigination / (24*60*60),
    'YYYY-MM-DD HH24');

THE_HOUR      COUNT(RECORD_ID)
------------- ----------------
2013-09-24 14                1 
2013-09-20 18                1 

Beror på vad du vill se och vad du ska göra med det.

Oavsett vilka fält du använder för aggregeringen, måste du ange dem på samma sätt i group by klausul - du kan inte använda positionsbeteckning, t.ex. group by 1, 2 . Och du har redan insett att between värden måste vara i stigande ordning annars hittar den ingenting alls.




  1. PHP säker användarvariabel

  2. Windows phone 8.1-appen ansluter till en databas

  3. org.postgresql.util.PSQLEUndantag:Stora objekt får inte användas i auto-commit-läge

  4. Vad är det bästa sättet att hantera sql-anslutning i http-server (Flask) utan ORM i Python?