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

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

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

सिंटैक्स

वाक्य रचना इस प्रकार है:

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2) 

जहां unit निम्नलिखित मानों में से एक है:

  • MICROSECOND
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

इकाइयों में वैकल्पिक रूप से SQL_TSI_ . का उपसर्ग हो सकता है ।

TIMESTAMPDIFF() रिटर्न datetime_expr2datetime_expr1

एक एक्सप्रेशन एक तारीख और दूसरा एक डेटाइम हो सकता है। दिनांक मानों को 00:00:00 . के समय भाग के रूप में माना जाता है जहां आवश्यक हो।

उदाहरण

प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है:

 SELECT TIMESTAMPDIFF(DAY, '2030-02-01', '2030-03-01'); 

परिणाम:

+------------------------------------------ --+| टाइमस्टैम्पडिफ(दिन, '2030-02-01', '2030-03-01') |+---------------------------- ------------------------+| 28 |+-------------------------------------------------------- -+

नकारात्मक परिणाम

तिथियों को बदलने से नकारात्मक परिणाम मिलते हैं:

SELECT TIMESTAMPDIFF(DAY, '2030-03-01', '2030-02-01'); 

परिणाम:

+------------------------------------------ --+| टाइमस्टैम्पडिफ(दिन, '2030-03-01', '2030-02-01') |+---------------------------- ------------------------+| -28 | --+

डेटाटाइम मान

डेटाटाइम मान पास करने का एक उदाहरण यहां दिया गया है:

 SELECT TIMESTAMPDIFF(
    HOUR, 
    '2030-02-01 00:00:00', 
    '2030-02-01 12:30:45'
    ) 
AS Result; 

परिणाम:

+----------+| परिणाम |+-----------+| 12 |+----------+

मैंने HOUR specified निर्दिष्ट किया है , और इसलिए यह मिनट और सेकंड के हिस्से को अनदेखा कर देता है।

मिश्रित प्रकार

यहां दिनांक और डेटाटाइम मान दोनों को पास करने का एक उदाहरण दिया गया है:

 SELECT TIMESTAMPDIFF(
    HOUR, 
    '2030-02-01', 
    '2030-02-01 12:30:45'
    ) 
AS Result; 

परिणाम:

+----------+| परिणाम |+-----------+| 12 |+----------+

जैसा कि उल्लेख किया गया है, दिनांक मानों को 00:00:00 . के समय भाग के रूप में माना जाता है ।

एक SQL_TSI_जोड़ना उपसर्ग

इकाई में एक SQL_TSI_ शामिल हो सकता है यदि आवश्यक हो तो उपसर्ग:

 SELECT TIMESTAMPDIFF(
    SQL_TSI_YEAR, 
    '2030-02-01', 
    '2035-02-01'
    )
AS Result; 

परिणाम:

+----------+| परिणाम |+-----------+| 5 |+----------+

माइक्रोसेकंड

यहां एक उदाहरण दिया गया है जो माइक्रोसेकंड लौटाता है:

 SELECT TIMESTAMPDIFF(
    MICROSECOND, 
    '2030-02-01 10:30:45.000000',
    '2030-02-01 10:30:45.123456'
    )
AS Result; 

परिणाम:

+----------+| परिणाम |+-----------+| 123456 |+----------+

यहाँ एक है जहाँ माइक्रोसेकंड वास्तव में डेटाटाइम मानों में निर्दिष्ट नहीं हैं:

 SELECT TIMESTAMPDIFF(
    MICROSECOND, 
    '2030-02-01 10:30:45',
    '2030-02-01 12:30:45'
    )
AS Result; 

परिणाम:

+---------------+| परिणाम |+---------------+| 7200000000 |+---------------+

वर्तमान तिथि

हम NOW() pass पास कर सकते हैं किसी अन्य तिथि के साथ वर्तमान तिथि और समय की तुलना करने के लिए डेटाटाइम तर्कों में से एक:

 SELECT 
    NOW(),
    TIMESTAMPDIFF(DAY, NOW(), '2021-03-31') AS Diff; 

परिणाम:

+---------------------+----------+| अभी () | अंतर |+---------------------+------+| 2021-05-30 09:29:01 | -60 |+---------------------+------+

अशक्त तिथियां

यदि तिथियों में से कोई एक null है , परिणाम null . है :

 SELECT TIMESTAMPDIFF(
    YEAR, 
    '2030-02-01',
    NULL
    )
AS Result; 

परिणाम:

+----------+| परिणाम |+-----------+| नल |+----------+

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

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

SELECT TIMESTAMPDIFF(); 

परिणाम:

ERROR 1064 (42000):आपको अपने SQL सिंटैक्स में त्रुटि है; लाइन 1
पर ')' के पास उपयोग करने के लिए सही सिंटैक्स के लिए अपने मारियाडीबी सर्वर संस्करण से संबंधित मैनुअल की जांच करें।

और दूसरा उदाहरण:

 SELECT TIMESTAMPDIFF('2020-12-09'); 

परिणाम:

ERROR 1064 (42000):आपको अपने SQL सिंटैक्स में त्रुटि है; लाइन 1 पर '10, '2020-12-09')' के पास उपयोग करने के लिए सही सिंटैक्स के लिए अपने मारियाडीबी सर्वर संस्करण से मेल खाने वाले मैनुअल की जांच करें। 

  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 के लिए अपग्रेड किए गए dbForge Studio में MariaDB 10.4 के लिए समर्थन, v.8.1

  2. 20 टिप्स:ब्लैक फ्राइडे और साइबर मंडे के लिए अपना डेटाबेस तैयार करें

  3. मारियाडीबी राउंड () बनाम फ्लोर ()

  4. मारियाडीबी JSON_QUOTE () समझाया गया

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