Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

ORA-00936 Khi sử dụng hàm ngày trong câu lệnh chọn tiên tri

Nếu bạn muốn the_date trường như một ngày thực tế:

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 

Nếu bạn muốn giá trị giờ là một số, bạn có thể bọc trường đó trong to_number() cuộc gọi. Nếu đây là để hiển thị thì bạn cũng nên định dạng ngày rõ ràng:

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 

Hoặc với một trường cho ngày và giờ cùng nhau:

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 

Tùy thuộc vào những gì bạn muốn xem và những gì bạn sẽ làm với nó.

Cho dù bạn sử dụng trường nào để tổng hợp, bạn cần chỉ định chúng theo cùng một cách trong nhóm group by mệnh đề - bạn không thể sử dụng ký hiệu vị trí, ví dụ:group by 1, 2 . Có bạn đã nhận ra rằng between các giá trị phải theo thứ tự tăng dần nếu không sẽ không tìm thấy gì cả.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chế độ xem cụ thể hóa với Oracle

  2. Kết nối với Oracle DB từ Spring-jdbc với xác thực Ví Oracle

  3. chúng ta có thể thực hiện lệnh unix từ thủ tục oracle10g không

  4. Tên người dùng và mật khẩu mặc định cho cơ sở dữ liệu Oracle

  5. JDBC:lấy kiểu mảng từ siêu dữ liệu