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

ग्रुप बाय इंटरवल ओवरलैपिंग टाइमस्टैम्प MySQL क्वेरी

मुझे लगता है कि आप अपनी सीमा के अनुरूप होने के लिए केवल घंटों को 5 पर सेट करना चाहते हैं। अगर ऐसा है, तो आप यह कर सकते हैं:

SELECT cast(date(stamp) as datetime) + interval 5 hour
       Sum(value) 
FROM   table 
WHERE  stamp >= Date_sub('2012-12-02 05:00:00', INTERVAL 1 day) 
       AND stamp < '2013-01-01 05:00:00' 
GROUP  BY Date(stamp) 

लेकिन, मुझे लगता है कि आप वास्तव में इसे थोड़ा अलग तरीके से वाक्यांश देना चाहेंगे:

SELECT cast(date(stamp - interval 5 hour) as datetime) + interval 5 hour
       Sum(value) 
FROM   table 
WHERE  stamp >= Date_sub('2012-12-02 05:00:00', INTERVAL 1 day) 
       AND stamp < '2013-01-01 05:00:00' 
GROUP  BY Date(stamp - interval 5 hour)

यह वास्तव में 5 घंटे की सीमा पर तारीखों को पुन:संरेखित करता है।

नोट:इन प्रश्नों का परीक्षण नहीं किया गया है, इसलिए इसमें सिंटैक्स त्रुटियां हो सकती हैं।

यह माना जा रहा है कि टाइमस्टैम्प वास्तव में एक डेटाटाइम है। अगर यह UNIX टाइमस्टैम्प है, तो आपको पहले इसे कनवर्ट करना होगा।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL रिलेशनल डिवीजन (IN AND बजाय IN OR) कार्यान्वयन में प्रदर्शन अंतर क्या है?

  2. कॉलम नाम में आरक्षित शब्द - MySQL में डालें

  3. com.mchange.v2.resourcepool.CannotAcquireResourceException:एक रिसोर्सपूल अपने प्राथमिक कारखाने या स्रोत से संसाधन प्राप्त नहीं कर सका

  4. रिमोट सर्वर, आईफोन पर चित्र अपलोड करना

  5. MySQL InnoDB ईमेल पता युक्त पूर्ण पाठ खोज