सहज रूप से, आप जो पूछ रहे हैं वह पहली और आखिरी तारीखों के बीच के अंतराल के बराबर होना चाहिए, जो कि माइनस 1 की तारीखों की संख्या से विभाजित होता है।
मुझे और विस्तार से समझाएं। कल्पना कीजिए कि तिथियां एक रेखा पर बिंदु हैं (+
दिनांक मौजूद हैं, -
तारीखें गायब हैं, पहली तारीख 12वीं है, और मैंने उदाहरण के लिए आखिरी तारीख को बदलकर 24 दिसंबर कर दिया है):
++----+---+-+
अब, आप वास्तव में क्या करना चाहते हैं, अपनी तिथियों को इन पंक्तियों के बीच समान रूप से रखें, और पता करें कि उनमें से प्रत्येक के बीच कितना समय है:
+--+--+--+--+
ऐसा करने के लिए, आप बस अंतिम और पहले दिनों के बीच के दिनों की संख्या लेते हैं, इस स्थिति में 24 - 12 =12, और इसे उस अंतराल की संख्या से विभाजित करें जिसे आपको खाली करना है, इस मामले में 4:12 / 4 = 3
।
एक MySQL क्वेरी के साथ
SELECT DATEDIFF(MAX(dt), MIN(dt)) / (COUNT(dt) - 1) FROM a;
यह इस तालिका पर काम करता है (आपके मूल्यों के साथ यह 2.75 देता है):
CREATE TABLE IF NOT EXISTS `a` (
`dt` date NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `a` (`dt`) VALUES
('2010-12-12'),
('2010-12-13'),
('2010-12-18'),
('2010-12-22'),
('2010-12-24');