मारियाडीबी में, ADDDATE()
एक अंतर्निहित दिनांक और समय फ़ंक्शन है जो दिनांक अंकगणित करता है।
यह आपको तिथि, जोड़ने की इकाई और जोड़ने की राशि निर्दिष्ट करके तिथि बदलने की अनुमति देता है। यदि आप किसी निश्चित अंतराल से तिथि घटाना चाहते हैं तो आप एक ऋणात्मक राशि पास कर सकते हैं।
ADDDATE()
इसमें एक शॉर्टकट सिंटैक्स भी होता है जो आपको दिनांक में दिए गए दिनों की संख्या जोड़ने की अनुमति देता है।
सिंटैक्स
ADDDATE()
फ़ंक्शन में दो सिंटैक्स होते हैं।
सिंटैक्स 1:
ADDDATE(expr,days)
जहां expr
तारीख है, और days
जोड़ने के लिए दिनों की संख्या है।
सिंटैक्स 2:
ADDDATE(date,INTERVAL expr unit)
जहां date
बदलने की तारीख है, expr
जोड़ने की राशि है, और unit
जोड़ने की इकाई है (जैसे सेकंड, मिनट, आदि)।
इस सिंटैक्स का उपयोग करते समय, ADDDATE()
DATE_ADD()
. का समानार्थी है ।
उदाहरण - सिंटैक्स 1
यहां पहले सिंटैक्स का उपयोग करने का एक उदाहरण दिया गया है:
SELECT ADDDATE('2021-05-01', 1);
परिणाम:
+--------------------------+ | ADDDATE('2021-05-01', 1) | +--------------------------+ | 2021-05-02 | +--------------------------+
यदि आवश्यक हो तो हम समय भाग भी शामिल कर सकते हैं:
SELECT ADDDATE('2021-05-01 10:00:00', 1);
परिणाम:
+-----------------------------------+ | ADDDATE('2021-05-01 10:00:00', 1) | +-----------------------------------+ | 2021-05-02 10:00:00 | +-----------------------------------+
यहाँ एक ही काम करने के दो वैकल्पिक तरीके दिए गए हैं:
SELECT
DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 DAY) AS "Result 1",
'2021-05-01 10:00:00' + INTERVAL 1 DAY AS "Result 2";
परिणाम:
+---------------------+---------------------+ | Result 1 | Result 2 | +---------------------+---------------------+ | 2021-05-02 10:00:00 | 2021-05-02 10:00:00 | +---------------------+---------------------+
उदाहरण - सिंटैक्स 2
दूसरे सिंटैक्स का उपयोग करने का एक उदाहरण यहां दिया गया है:
SELECT ADDDATE('2021-05-31 10:00:00', INTERVAL 1 HOUR);
परिणाम:
+-------------------------------------------------+ | ADDDATE('2021-05-31 10:00:00', INTERVAL 1 HOUR) | +-------------------------------------------------+ | 2021-05-31 11:00:00 | +-------------------------------------------------+
यह सिंटैक्स हमें अन्य इकाइयों को तिथि में जोड़ने की अनुमति देता है (अर्थात केवल दिन नहीं)। यहां, मैंने तिथि में एक घंटा जोड़ा, लेकिन मैं आसानी से मिनट, सेकंड, महीने, दिन, वर्ष आदि जोड़ सकता था। उदाहरणों के लिए पढ़ना जारी रखें।
उपरोक्त उदाहरण के समान परिणाम प्राप्त करने के लिए यहां दो वैकल्पिक तरीके दिए गए हैं:
SELECT
DATE_ADD('2021-05-31 10:00:00', INTERVAL 1 HOUR) AS "Result 1",
'2021-05-31 10:00:00' + INTERVAL 1 HOUR AS "Result 2";
परिणाम:
+---------------------+---------------------+ | Result 1 | Result 2 | +---------------------+---------------------+ | 2021-05-31 11:00:00 | 2021-05-31 11:00:00 | +---------------------+---------------------+
नकारात्मक अंतराल
ऋणात्मक अंतराल प्रदान करने से उस राशि को दिनांक से घटा दिया जाता है।
उदाहरण:
SELECT ADDDATE('2021-05-31 10:00:00', INTERVAL -1 HOUR);
परिणाम:
+--------------------------------------------------+ | ADDDATE('2021-05-31 10:00:00', INTERVAL -1 HOUR) | +--------------------------------------------------+ | 2021-05-31 09:00:00 | +--------------------------------------------------+
अन्य इकाइयां
यहां एक उदाहरण दिया गया है जो विभिन्न दिनांक और समय इकाइयों में 1 का अंतराल जोड़ता है:
SELECT
ADDDATE('2021-05-01 10:00:00', INTERVAL 1 YEAR) AS YEAR,
ADDDATE('2021-05-01 10:00:00', INTERVAL 1 MONTH) AS MONTH,
ADDDATE('2021-05-01 10:00:00', INTERVAL 1 DAY) AS DAY,
ADDDATE('2021-05-01 10:00:00', INTERVAL 1 HOUR) AS HOUR,
ADDDATE('2021-05-01 10:00:00', INTERVAL 1 MINUTE) AS MINUTE,
ADDDATE('2021-05-01 10:00:00', INTERVAL 1 SECOND) AS SECOND,
ADDDATE('2021-05-01 10:00:00', INTERVAL 1 MICROSECOND) AS MICROSECOND;
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
YEAR: 2022-05-01 10:00:00 MONTH: 2021-06-01 10:00:00 DAY: 2021-05-02 10:00:00 HOUR: 2021-05-01 11:00:00 MINUTE: 2021-05-01 10:01:00 SECOND: 2021-05-01 10:00:01 MICROSECOND: 2021-05-01 10:00:00.000001
समग्र इकाइयां
यहां एक उदाहरण दिया गया है जो मिश्रित इकाइयों का उपयोग करता है:
SELECT
ADDDATE('2021-05-01 10:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH",
ADDDATE('2021-05-01 10:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND",
ADDDATE('2021-05-01 10:00:00', INTERVAL '1:30' DAY_MINUTE) AS "DAY_MINUTE";
परिणाम:
+---------------------+---------------------+---------------------+ | YEAR_MONTH | HOUR_SECOND | DAY_MINUTE | +---------------------+---------------------+---------------------+ | 2022-07-01 10:00:00 | 2021-05-01 11:25:35 | 2021-05-01 11:30:00 | +---------------------+---------------------+---------------------+
अशक्त तिथियां
पासिंग null
वापसी की तारीख के लिए null
:
SELECT ADDDATE(null, INTERVAL 1 YEAR);
परिणाम:
+--------------------------------+ | ADDDATE(null, INTERVAL 1 YEAR) | +--------------------------------+ | NULL | +--------------------------------+
अनुपलब्ध तर्क
कॉलिंग ADDDATE()
तर्कों की गलत संख्या के साथ, या बिना कोई तर्क पारित किए त्रुटि उत्पन्न होती है:
SELECT ADDDATE();
परिणाम:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1पर ')' के पास उपयोग करने के लिए सही सिंटैक्स के लिए अपने मारियाडीबी सर्वर संस्करण से संबंधित मैनुअल की जांच करें।