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

MySQL कैसे सीमा में लापता तिथियों को भरने के लिए?

MySQL में पुनरावर्ती कार्यक्षमता नहीं है, इसलिए आपके पास NUMBERS टेबल ट्रिक का उपयोग करना शेष है -

  1. एक तालिका बनाएं जिसमें केवल वृद्धिशील संख्याएं हों - auto_increment का उपयोग करके करना आसान:

    DROP TABLE IF EXISTS `example`.`numbers`;
    CREATE TABLE  `example`.`numbers` (
      `id` int(10) unsigned NOT NULL auto_increment,
       PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
  2. तालिका का उपयोग करके पॉप्युलेट करें:

    INSERT INTO `example`.`numbers`
      ( `id` )
    VALUES
      ( NULL )
    

    ...जितने मूल्यों की आपको आवश्यकता है।

  3. DATE_ADD तारीखों की सूची बनाने के लिए, NUMBERS.id मान के आधार पर दिनों को बढ़ाते हुए। "2010-06-06" और "2010-06-14" को अपनी संबंधित आरंभ और समाप्ति तिथियों से बदलें (लेकिन उसी प्रारूप का उपयोग करें, YYYY-MM-DD) -

    SELECT `x`.*
      FROM (SELECT DATE_ADD('2010-06-06', INTERVAL `n`.`id` - 1 DAY)
              FROM `numbers` `n`
             WHERE DATE_ADD('2010-06-06', INTERVAL `n`.`id` -1 DAY) <= '2010-06-14' ) x
    
  4. समय भाग के आधार पर अपने डेटा तालिका में बाएं शामिल हों:

       SELECT `x`.`ts` AS `timestamp`,
              COALESCE(`y`.`score`, 0) AS `cnt`
         FROM (SELECT DATE_FORMAT(DATE_ADD('2010-06-06', INTERVAL `n`.`id` - 1 DAY), '%m/%d/%Y') AS `ts`
                 FROM `numbers` `n`
                WHERE DATE_ADD('2010-06-06', INTERVAL `n`.`id` - 1 DAY) <= '2010-06-14') x
    LEFT JOIN TABLE `y` ON STR_TO_DATE(`y`.`date`, '%d.%m.%Y') = `x`.`ts`
    

यदि आप दिनांक स्वरूप को बनाए रखना चाहते हैं, तो DATE_FORMAT फ़ंक्शन :

DATE_FORMAT(`x`.`ts`, '%d.%m.%Y') AS `timestamp`


  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. MySQL में एकाधिक तालिकाओं से कैसे हटाएं?

  3. स्ट्रीमिंग बड़े परिणाम MySQL के साथ सेट होते हैं

  4. PHP और MySQL में एक सुरक्षित लॉगिन स्क्रिप्ट कैसे बनाएं

  5. mysql रूट पासवर्ड भूल गया