मारियाडीबी में, PERIOD_DIFF()
एक अंतर्निहित दिनांक और समय फ़ंक्शन है जो दो अवधियों के बीच महीनों की संख्या देता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
PERIOD_DIFF(P1,P2)
जहां P1
और P2
के बीच अंतर पाने की अवधि हैं।
दोनों तर्क YYMM या YYYYMM प्रारूप में हैं। वे दिनांक मान नहीं हैं।
उदाहरण
यहां एक उदाहरण दिया गया है:
SELECT PERIOD_DIFF(202108, 202101);
परिणाम:
+-----------------------------+ | PERIOD_DIFF(202108, 202101) | +-----------------------------+ | 7 | +-----------------------------+
इस उदाहरण में, दो अवधियों के बीच सात महीने का अंतर है।
आदेश बदलें
यदि पहली अवधि दूसरी से पहले की अवधि है, तो परिणाम एक नकारात्मक मान है।
जब मैं पिछले उदाहरण में तर्कों के क्रम को बदलता हूं तो यहां क्या होता है:
SELECT PERIOD_DIFF(202101, 202108);
परिणाम:
+-----------------------------+ | PERIOD_DIFF(202101, 202108) | +-----------------------------+ | -7 | +-----------------------------+
दो अंकों का वर्ष
यदि किसी भी तर्क में दो अंकों का वर्ष होता है, तो 00 से 69 के मान 2000 से 2069 में परिवर्तित हो जाते हैं, जबकि 70 से मान ऊपर की ओर 1970 में परिवर्तित हो जाते हैं।
उदाहरण:
SELECT
PERIOD_DIFF(6911, 6912),
PERIOD_DIFF(6911, 7001);
परिणाम:
+-------------------------+-------------------------+ | PERIOD_DIFF(6911, 6912) | PERIOD_DIFF(6911, 7001) | +-------------------------+-------------------------+ | -1 | 1198 | +-------------------------+-------------------------+
अनुपलब्ध तर्क
कॉलिंग PERIOD_DIFF()
तर्कों की गलत संख्या के साथ, या कोई तर्क पारित किए बिना, एक त्रुटि उत्पन्न होती है:
SELECT PERIOD_DIFF();
परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'PERIOD_DIFF'
और दूसरा उदाहरण:
SELECT PERIOD_DIFF( 6912 );
परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'PERIOD_DIFF'