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

मारियाडीबी में सबडेट () कैसे काम करता है?

मारियाडीबी में, SUBDATE() एक अंतर्निहित दिनांक और समय फ़ंक्शन है जो किसी निश्चित तिथि से राशि घटाता है।

यह आपको तिथि, घटाने की इकाई और घटाने की राशि निर्दिष्ट करके तिथि बदलने की अनुमति देता है। जोड़ने . के लिए आप एक ऋणात्मक राशि पास कर सकते हैं तारीख तक, उसमें से घटाने के बजाय।

SUBDATE() इसमें एक शॉर्टकट सिंटैक्स भी है जो आपको घटाने के दिनों को निर्दिष्ट करने की अनुमति देता है।

सिंटैक्स

SUBDATE() फ़ंक्शन में दो सिंटैक्स होते हैं।

सिंटैक्स 1:

SUBDATE(expr,days)

जहां expr तारीख है, और days घटाने के लिए दिनों की संख्या है।

सिंटैक्स 2:

SUBDATE(date,INTERVAL expr unit)

जहां date बदलने की तारीख है, expr घटाने की राशि है, और unit घटाने के लिए दिनांक/समय इकाई है (उदा. सेकंड, मिनट, आदि)।

इस सिंटैक्स का उपयोग करते समय, SUBDATE() DATE_SUB() . का समानार्थी है ।

उदाहरण - सिंटैक्स 1

यहां पहले सिंटैक्स का उपयोग करने का एक उदाहरण दिया गया है:

SELECT SUBDATE('2021-05-01', 1);

परिणाम:

+--------------------------+
| SUBDATE('2021-05-01', 1) |
+--------------------------+
| 2021-04-30               |
+--------------------------+

यदि आवश्यक हो तो हम समय भाग भी शामिल कर सकते हैं:

SELECT SUBDATE('2021-05-01 10:00:00', 1);

परिणाम:

+-----------------------------------+
| SUBDATE('2021-05-01 10:00:00', 1) |
+-----------------------------------+
| 2021-04-30 10:00:00               |
+-----------------------------------+

यहाँ एक ही काम करने के दो वैकल्पिक तरीके दिए गए हैं:

SELECT 
    DATE_SUB('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-04-30 10:00:00 | 2021-04-30 10:00:00 |
+---------------------+---------------------+

उदाहरण - सिंटैक्स 2

दूसरे सिंटैक्स का उपयोग करने का एक उदाहरण यहां दिया गया है:

SELECT SUBDATE('2021-05-31 10:00:00', INTERVAL 1 HOUR);

परिणाम:

+-------------------------------------------------+
| SUBDATE('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) AS "Result 1",
    '2021-05-31 10:00:00' - INTERVAL 1 HOUR AS "Result 2";

परिणाम:

+---------------------+---------------------+
| Result 1            | Result 2            |
+---------------------+---------------------+
| 2021-05-31 09:00:00 | 2021-05-31 09:00:00 |
+---------------------+---------------------+

नकारात्मक अंतराल

ऋणात्मक अंतराल प्रदान करना जोड़ता है वह राशि आज तक।

उदाहरण:

SELECT SUBDATE('2021-05-31 10:00:00', INTERVAL -1 HOUR);

परिणाम:

+--------------------------------------------------+
| SUBDATE('2021-05-31 10:00:00', INTERVAL -1 HOUR) |
+--------------------------------------------------+
| 2021-05-31 11:00:00                              |
+--------------------------------------------------+

अन्य इकाइयां

यहां एक उदाहरण दिया गया है जो विभिन्न दिनांक और समय इकाइयों से 1 के अंतराल को घटाता है:

SELECT 
    SUBDATE('2021-05-01 10:00:00', INTERVAL 1 YEAR) AS YEAR,
    SUBDATE('2021-05-01 10:00:00', INTERVAL 1 MONTH) AS MONTH,
    SUBDATE('2021-05-01 10:00:00', INTERVAL 1 DAY) AS DAY,
    SUBDATE('2021-05-01 10:00:00', INTERVAL 1 HOUR) AS HOUR,
    SUBDATE('2021-05-01 10:00:00', INTERVAL 1 MINUTE) AS MINUTE,
    SUBDATE('2021-05-01 10:00:00', INTERVAL 1 SECOND) AS SECOND,
    SUBDATE('2021-05-01 10:00:00', INTERVAL 1 MICROSECOND) AS MICROSECOND;

परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):

       YEAR: 2020-05-01 10:00:00
      MONTH: 2021-04-01 10:00:00
        DAY: 2021-04-30 10:00:00
       HOUR: 2021-05-01 09:00:00
     MINUTE: 2021-05-01 09:59:00
     SECOND: 2021-05-01 09:59:59
MICROSECOND: 2021-05-01 09:59:59.999999

समग्र इकाइयां

यहां एक उदाहरण दिया गया है जो मिश्रित इकाइयों का उपयोग करता है:

SELECT 
    SUBDATE('2021-05-01 10:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH",
    SUBDATE('2021-05-01 10:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND",
    SUBDATE('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 SUBDATE(null, INTERVAL 1 YEAR);

परिणाम:

+--------------------------------+
| SUBDATE(null, INTERVAL 1 YEAR) |
+--------------------------------+
| NULL                           |
+--------------------------------+

अनुपलब्ध तर्क

कॉलिंग SUBDATE() तर्कों की गलत संख्या के साथ, या बिना कोई तर्क पारित किए त्रुटि उत्पन्न होती है:

SELECT SUBDATE();

परिणाम:

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
पर ')' के पास उपयोग करने के लिए सही सिंटैक्स के लिए अपने मारियाडीबी सर्वर संस्करण से संबंधित मैनुअल की जांच करें।

  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 वर्कबेंच से AWS MySQL / MariaDB RDS या EC2 डेटाबेस से कैसे कनेक्ट करें

  2. मारियाडीबी में FIND_IN_SET () कैसे काम करता है

  3. डॉकर पर MySQL गैलेरा क्लस्टर के लिए ProxySQL 2.0 को कैसे चलाएं और कॉन्फ़िगर करें

  4. गैलेरा क्लस्टर क्लाउड ऑफ़रिंग की तुलना करना:भाग दो Google क्लाउड प्लेटफ़ॉर्म (GCP)

  5. कैसे ग्रेटेस्ट () मारियाडीबी में काम करता है