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

तिथियों की एक श्रृंखला के साथ तालिका को कैसे पॉप्युलेट करें?

इसे आजमाएं:

DROP PROCEDURE IF EXISTS filldates;
DELIMITER |
CREATE PROCEDURE filldates(dateStart DATE, dateEnd DATE)
BEGIN
  WHILE dateStart <= dateEnd DO
    INSERT INTO tablename (_date) VALUES (dateStart);
    SET dateStart = date_add(dateStart, INTERVAL 1 DAY);
  END WHILE;
END;
|
DELIMITER ;
CALL filldates('2011-01-01','2011-12-31');

इसके साथ खेलने के लिए यहां SQL Fiddle है:http://sqlfiddle.com/#!2/ 65d13/1

संपादित करें (यह जांचने के लिए कि क्या तिथि पहले से मौजूद है) जैसा कि एंड्रयू फॉक्स .

CREATE PROCEDURE filldates(dateStart DATE, dateEnd DATE)

BEGIN

DECLARE adate date;

    WHILE dateStart <= dateEnd DO

        SET adate = (SELECT mydate FROM MyDates WHERE mydate = dateStart);

        IF adate IS NULL THEN BEGIN

            INSERT INTO MyDates (mydate) VALUES (dateStart);

        END; END IF;

        SET dateStart = date_add(dateStart, INTERVAL 1 DAY);

    END WHILE;

END;//

इसके साथ खेलने के लिए यहां SQL Fiddle है:http://sqlfiddle.com/#!2/ 66f86/1



  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, PostgreSQL और SQLite में परिणाम कैसे सीमित करें

  2. MySQL में एकाधिक तालिकाओं से COUNT(*)

  3. MySQL REGEXP उदाहरण

  4. MySQL से जुड़ने के लिए टॉमकैट को कैसे कॉन्फ़िगर करें

  5. पायथन कर्सर का उपयोग करके संग्रहीत कार्यविधि से परिणाम नहीं लौटा सकता