Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ORA-00936 ऑरैकल सेलेक्ट स्टेटमेंट में डेट फंक्शन का उपयोग करते समय

अगर आप the_date चाहते हैं वास्तविक तिथि के रूप में फ़ील्ड:

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 

यदि आप घंटे के मान को एक संख्या के रूप में चाहते हैं तो आप उस फ़ील्ड को to_number() . में लपेट सकते हैं बुलाना। अगर यह प्रदर्शन के लिए है तो आपको तारीख को भी स्पष्ट रूप से प्रारूपित करना चाहिए:

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 

या दिनांक और समय के लिए एक साथ एक फ़ील्ड के साथ:

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 

निर्भर करता है कि आप क्या देखना चाहते हैं और आप इसके साथ क्या करने जा रहे हैं।

आप एग्रीगेशन के लिए जो भी फ़ील्ड इस्तेमाल करते हैं, आपको उन्हें उसी तरह group by में निर्दिष्ट करना होगा खंड - आप स्थितीय संकेतन का उपयोग नहीं कर सकते, उदा। group by 1, 2 . और आप पहले ही महसूस कर चुके हैं कि between मानों को आरोही क्रम में होना चाहिए या इसे कुछ भी नहीं मिलेगा।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ऑरैकल में अल्पविराम का उपयोग करके बंटवारा राशि

  2. एलएन () Oracle में फ़ंक्शन

  3. H2 और Oracle संगतता मुद्दे

  4. क्लॉब वेरिएबल लाइन को लाइन से पढ़ना

  5. TO_DATE() Oracle में फ़ंक्शन