sql >> Database >  >> RDS >> Oracle

ORA-00936 Bij gebruik van de datumfunctie in de Oracle select-instructie

Als je de the_date . wilt veld als een actuele 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 

Als u de uurwaarde als een getal wilt, kunt u dat veld in een to_number() . plaatsen telefoongesprek. Als dit voor weergave is, moet u de datum ook expliciet opmaken:

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 

Of met één veld voor de datum en tijd samen:

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 

Hangt ervan af wat je wilt zien en wat je ermee gaat doen.

Welke velden u ook gebruikt voor de aggregatie, u moet ze op dezelfde manier specificeren in de group by clausule - u kunt geen positionele notatie gebruiken, b.v. group by 1, 2 . En je realiseerde je al dat de between waarden moeten in oplopende volgorde staan, anders vindt hij helemaal niets.




  1. Is er een LISTAGG BINNEN GROEP-equivalent in SQLAlchemy?

  2. OSX 10.9 Mavericks en Eclipse Kepler (4.3.2) of M6 Eclipse Luna (4.4)

  3. MySQL-fout 2006:mysql-server is verdwenen

  4. SQL-query met Row_Number, order by en where-clausule