मारियाडीबी में, STR_TO_DATE()
एक अंतर्निहित दिनांक और समय फ़ंक्शन है जो दिए गए दिनांक स्ट्रिंग और प्रारूप स्ट्रिंग के आधार पर डेटाटाइम मान देता है।
STR_TO_DATE()
फ़ंक्शन DATE_FORMAT()
. का विलोम है समारोह।
सिंटैक्स
वाक्य रचना इस प्रकार है:
STR_TO_DATE(str,format)
जहां str
दिनांक स्ट्रिंग है, और format
एक प्रारूप स्ट्रिंग है जो दिनांक स्ट्रिंग के प्रारूप को निर्दिष्ट करती है।
उदाहरण
यहां एक उदाहरण दिया गया है:
SELECT STR_TO_DATE('Monday, May 24, 2021', '%W, %M %e, %Y');
परिणाम:
+------------------------------------------------------+ | STR_TO_DATE('Monday, May 24, 2021', '%W, %M %e, %Y') | +------------------------------------------------------+ | 2021-05-24 | +------------------------------------------------------+
प्रारूप स्ट्रिंग में कई प्रारूप विनिर्देशक होते हैं जो मारियाडीबी को बताते हैं कि पहले तर्क में दिनांक कैसे स्वरूपित किया गया है। प्रारूप स्ट्रिंग में उपयोग किए जा सकने वाले प्रारूप विनिर्देशों की सूची के लिए मारियाडीबी प्रारूप स्ट्रिंग्स देखें।
इस उदाहरण में, परिणाम दिनांक मान है, क्योंकि प्रारूप स्ट्रिंग में केवल दिनांक भाग होते हैं।
डेटाटाइम मान लौटाएं
यहां एक उदाहरण दिया गया है जो डेटाटाइम मान देता है:
SELECT STR_TO_DATE('May 24, 2021', '%M %e, %Y %H:%i:%S');
परिणाम:
+---------------------------------------------------+ | STR_TO_DATE('May 24, 2021', '%M %e, %Y %H:%i:%S') | +---------------------------------------------------+ | 2021-05-24 00:00:00 | +---------------------------------------------------+
इस उदाहरण में, समय भाग जोड़ा गया था, भले ही पहले तर्क में कोई समय भाग नहीं था।
यहां एक और उदाहरण दिया गया है जिसमें पहले तर्क में एक समय भाग शामिल है:
SELECT
STR_TO_DATE('10:30:45 on May 24, 2021', '%H:%i:%S on %M %e, %Y');
परिणाम:
+------------------------------------------------------------------+ | STR_TO_DATE('10:30:45 on May 24, 2021', '%H:%i:%S on %M %e, %Y') | +------------------------------------------------------------------+ | 2021-05-24 10:30:45 | +------------------------------------------------------------------+
यहाँ एक और है, जहाँ दिनांक स्ट्रिंग एक शिथिल समय मान का उपयोग करती है:
SELECT
STR_TO_DATE('10.30pm on May 24, 2021', '%H.%ipm on %M %e, %Y');
परिणाम:
+----------------------------------------------------------------+ | STR_TO_DATE('10.30pm on May 24, 2021', '%H.%ipm on %M %e, %Y') | +----------------------------------------------------------------+ | 2021-05-24 10:30:00 | +----------------------------------------------------------------+
समय मान लौटाएं
यहां, हम केवल समय मान वापस करने के लिए प्रारूप स्ट्रिंग को बदलते हैं:
SELECT STR_TO_DATE('10:30:45 on May 24, 2021', '%H:%i:%S');
परिणाम:
+-----------------------------------------------------+ | STR_TO_DATE('10:30:45 on May 24, 2021', '%H:%i:%S') | +-----------------------------------------------------+ | 10:30:45 | +-----------------------------------------------------+
अवैध दिनांक/समय स्ट्रिंग
एक अवैध दिनांक स्ट्रिंग पास करना null
returns लौटाता है चेतावनी के साथ।
उदाहरण:
SELECT STR_TO_DATE('Humpday, May 26, 2021', '%W, %M %e, %Y');
परिणाम:
+-------------------------------------------------------+ | STR_TO_DATE('Humpday, May 26, 2021', '%W, %M %e, %Y') | +-------------------------------------------------------+ | NULL | +-------------------------------------------------------+ 1 row in set, 1 warning (0.009 sec)
आइए चेतावनी देखें:
SHOW WARNINGS;
परिणाम:
+---------+------+----------------------------------------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------------------------------------+ | Warning | 1411 | Incorrect datetime value: 'Humpday, May 26, 2021' for function str_to_date | +---------+------+----------------------------------------------------------------------------+
अनुपलब्ध तर्क
कॉलिंग STR_TO_DATE()
तर्कों की गलत संख्या के साथ, या कोई तर्क पारित किए बिना, एक त्रुटि उत्पन्न होती है:
SELECT STR_TO_DATE();
परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'STR_TO_DATE'
और दूसरा उदाहरण:
SELECT STR_TO_DATE('Friday, 28 May 2021');
परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'STR_TO_DATE'