मारियाडीबी में, DATE_SUB() एक अंतर्निहित दिनांक और समय फ़ंक्शन है जो आपको किसी तिथि से एक राशि घटाने की अनुमति देता है।
यह आपको तिथि, घटाने की इकाई और घटाने की राशि निर्दिष्ट करके तिथि बदलने की अनुमति देता है। आप तिथि को घटाने के बजाय उसमें जोड़ने के लिए एक ऋणात्मक राशि पास कर सकते हैं।
सिंटैक्स
वाक्य रचना इस प्रकार है:
DATE_SUB(date,INTERVAL expr unit)
जहां date बदलने की तारीख है, expr घटाने की राशि है, और unit घटाने के लिए दिनांक/समय इकाई है (उदा. सेकंड, मिनट, आदि)।
उदाहरण
यहां एक बुनियादी उदाहरण दिया गया है:
SELECT DATE_SUB('2021-05-31 10:00:00', INTERVAL 1 HOUR); परिणाम:
+--------------------------------------------------+
| DATE_SUB('2021-05-31 10:00:00', INTERVAL 1 HOUR) |
+--------------------------------------------------+
| 2021-05-31 09:00:00 |
+--------------------------------------------------+ यह निम्न कार्य करने जैसा है:
SELECT '2021-05-31 10:00:00' - INTERVAL 1 HOUR; परिणाम:
+-----------------------------------------+ | '2021-05-31 10:00:00' - INTERVAL 1 HOUR | +-----------------------------------------+ | 2021-05-31 09:00:00 | +-----------------------------------------+
नकारात्मक अंतराल
ऋणात्मक अंतराल प्रदान करना जोड़ता है तारीख से वह राशि।
उदाहरण:
SELECT DATE_SUB('2021-05-31 10:00:00', INTERVAL -1 HOUR); परिणाम:
+---------------------------------------------------+
| DATE_SUB('2021-05-31 10:00:00', INTERVAL -1 HOUR) |
+---------------------------------------------------+
| 2021-05-31 11:00:00 |
+---------------------------------------------------+ अन्य इकाइयां
यहां एक उदाहरण दिया गया है जो विभिन्न दिनांक और समय इकाइयों में 1 का अंतराल जोड़ता है:
SELECT
DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 YEAR) AS YEAR,
DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 MONTH) AS MONTH,
DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 DAY) AS DAY,
DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 HOUR) AS HOUR,
DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 MINUTE) AS MINUTE,
DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 SECOND) AS SECOND,
DATE_SUB('2021-05-10 10:00:00', INTERVAL 1 MICROSECOND) AS MICROSECOND; परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
YEAR: 2020-05-10 10:00:00
MONTH: 2021-04-10 10:00:00
DAY: 2021-05-09 10:00:00
HOUR: 2021-05-10 09:00:00
MINUTE: 2021-05-10 09:59:00
SECOND: 2021-05-10 09:59:59
MICROSECOND: 2021-05-10 09:59:59.999999 समग्र इकाइयां
यहां एक उदाहरण दिया गया है जो मिश्रित इकाइयों का उपयोग करता है:
SELECT
DATE_SUB('2021-05-01 10:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH",
DATE_SUB('2021-05-01 10:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND",
DATE_SUB('2021-05-01 10:00:00', INTERVAL '1:30' DAY_MINUTE) AS "DAY_MINUTE"; परिणाम:
+---------------------+---------------------+---------------------+ | YEAR_MONTH | HOUR_SECOND | DAY_MINUTE | +---------------------+---------------------+---------------------+ | 2020-03-01 10:00:00 | 2021-05-01 08:34:25 | 2021-05-01 08:30:00 | +---------------------+---------------------+---------------------+
अशक्त तिथियां
पासिंग null वापसी की तारीख के लिए null :
SELECT DATE_SUB(null, INTERVAL 1 YEAR); परिणाम:
+---------------------------------+ | DATE_SUB(null, INTERVAL 1 YEAR) | +---------------------------------+ | NULL | +---------------------------------+
अनुपलब्ध तर्क
कॉलिंग DATE_SUB() तर्कों की गलत संख्या के साथ, या बिना कोई तर्क पारित किए त्रुटि उत्पन्न होती है:
SELECT DATE_SUB(); परिणाम:
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पर ')' के पास उपयोग करने के लिए सही सिंटैक्स के लिए अपने मारियाडीबी सर्वर संस्करण से संबंधित मैनुअल की जांच करें।