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

डेटबेस रिकॉर्ड्स को 15 मिनट के समय अंतराल में कैसे समूहित करें

सबसे पहले, आपको अपने WHERE . में एक सूक्ष्म त्रुटि है खंड। आपको चाहिए:

where access_time >= '2013-05-28 02:00:00' 
  and access_time < '2013-05-28 10:00:00'

क्योंकि आपकी तिमाही-घंटे की सीमा एक विशेष समय से लेकर पहले . के क्षण तक चलती है एक और विशेष समय। आपको < चाहिए , नहीं <= , आपकी समय सीमा की समाप्ति के लिए।

फिर, आपको एक एक्सप्रेशन की आवश्यकता है जो एक मनमाना DATETIME ले सकता है एक्सप्रेशन और इसे DATETIME . में बदलें तिमाही घंटे की शुरुआत में जिसमें यह होता है।

यह ऐसा करेगा।

DATE_FORMAT(datestamp,'%Y-%m-%d %H:00:00') +
            INTERVAL (MINUTE(datestamp) -
                      MINUTE(datestamp) MOD 15) MINUTE

यह बदल जाता है, उदाहरण के लिए '2014-05-07 14:53:22' , '2014-05-07 14:45:00' . में ।

यदि आप चाहें तो इसे इस तरह से संग्रहीत फ़ंक्शन के रूप में परिभाषित कर सकते हैं:

DELIMITER $$
DROP FUNCTION IF EXISTS `TRUNC_15_MINUTES`$$
CREATE  FUNCTION `TRUNC_15_MINUTES`(datestamp DATETIME) 
                 RETURNS DATETIME
    NO SQL
    DETERMINISTIC
    RETURN DATE_FORMAT(datestamp,'%Y-%m-%d %H:00:00') +
                INTERVAL (MINUTE(datestamp) -
                          MINUTE(datestamp) MOD 15) MINUTE$$
DELIMITER ;

फिर आप अपनी क्वेरी इस तरह लिख सकते हैं:

 select TRUNC_15_MINUTES(access_time) AS period_starting,
        user, count(user) as users 
   from user_access
 where access_time >= '2013-05-28 02:00:00' 
   and access_time <  '2013-05-28 10:00:00'
 group by TRUNC_15_MINUTES(access_time), user
 order by TRUNC_15_MINUTES(access_time), user

यह यहाँ लिखा है। http://www.plumislandmedia.net/mysql/sql-reporting- समय-अंतराल/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CURRENT_TIME उदाहरण – MySQL

  2. सेकंड को एचएच में कनवर्ट करना:एमएम:एसएस

  3. तिथियों के साथ एक अस्थायी तालिका बनाएं

  4. MySQL विदेशी कुंजी - तालिका का नाम हल नहीं कर सकता के करीब

  5. MySql में DATETIME फ़ील्ड के दिनांक भाग पर कोई अनुक्रमणिका कैसे बनाता है?