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

Oracle BI:पिछले सप्ताह के सभी रिकॉर्ड चुनें

अगले_दिन और नियमित तिथि अंकगणित। नीचे कोड बहुत करीब होना चाहिए, लेकिन यह अवांछित है और शायद किसी कोने के मामले में विफल रहता है, लेकिन कम से कम आपको सामान्य विचार मिलता है :)

where resolved_date >= next_day( trunc(sysdate) - interval '14' day, 'SUN')
  and resolved_date <  next_day( trunc(sysdate) - interval '7'  day, 'SUN')

trunc(sysdate) तारीख को दिन में छोटा करें; 2011-04-19 23:32:34 2011-04-19 00:00:00 हो जाता है, यानी समय घटक को हटा रहा है।next_day(sysdate, 'SUN') अगले रविवार को लौटता है। यदि sysdate रविवार को होता है, तो अगला रविवार वापस आ जाता है।
महत्वपूर्ण :दिन के नाम आपके सत्र की भाषा में ही होने चाहिए।
interval बात किसी तिथि से समय की विभिन्न इकाइयों को जोड़ने/घटाने का एक मानक तरीका है।

इन सब को मिलाकर, 19 अप्रैल 2011 का तर्क होगा:

  1. Truncate sysdate => 2011-04-19 00:00:00
  2. 14 दिन घटाएं => 2011-04-05 00:00:00
  3. अगला रविवार ढूंढें => 2011-04-10 00:00:00

...और

  1. Truncate sysdate => 2011-04-19 00:00:00
  2. 7 दिन घटाएं => 2011-04-12 00:00:00
  3. अगला रविवार ढूंढें => 2011-04-17 00:00:00

..निम्नलिखित क्वेरी के परिणामस्वरूप:

 where resolved_date >= timestamp '2011-04-10 00:00:00'
   and resolved_date <  timestamp '2011-04-17 00:00:00'

10:वें के पहले सेकंड को या उसके बाद लेकिन 17:वें के पहले सेकंड से पहले हुई सभी हल की गई तारीखों को शामिल किया जाएगा। ध्यान दें कि >= और < between . के बराबर नहीं है ।

प्रदर्शन पर एक नोट:मैं यह सुनिश्चित करता हूं कि ओरेकल सही ढंग से 7 दिनों की तारीख सीमा का अनुमान लगाता है, और सही जॉइन ऑर्डर/विधि का उपयोग किया जाता है। यदि आप कुछ समय के लिए क्वेरी चलने की अपेक्षा करते हैं, तो आप आवेदन में तिथियों की गणना करने और उन्हें ऊपर की तरह फ्लाई पर गणना करने के बजाय उन्हें डेट लिटरल्स के रूप में आपूर्ति कर सकते हैं।



  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. ऑरैकल से ब्लॉब डेटा प्राप्त करते समय सीमा

  3. ओरेकल एसक्यूएल में बराबर 'शो क्रिएट टेबल'

  4. क्या पीएल/एसक्यूएल में कोई हैश फ़ंक्शन है?

  5. java.sql.SQLException:ORA-01002:अनुक्रम से बाहर लाना