मारियाडीबी में, TO_SECONDS()
एक अंतर्निहित दिनांक और समय फ़ंक्शन है जो वर्ष 0 से सेकंड की संख्या को दी गई तिथि या डेटाटाइम अभिव्यक्ति पर लौटाता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
TO_SECONDS(expr)
जहां expr
दिनांक या दिनांक समय मान है।
उदाहरण
यहां एक उदाहरण दिया गया है:
SELECT TO_SECONDS('2020-10-30');
परिणाम:
+--------------------------+ | TO_SECONDS('2020-10-30') | +--------------------------+ | 63771235200 | +--------------------------+
यहाँ यह कुछ अन्य समय मूल्यों के साथ है:
SELECT
TO_SECONDS('0000-01-01'),
TO_SECONDS('1234-10-30');
परिणाम:
+--------------------------+--------------------------+ | TO_SECONDS('0000-01-01') | TO_SECONDS('1234-10-30') | +--------------------------+--------------------------+ | 86400 | 38967436800 | +--------------------------+--------------------------+
डेटाटाइम मान
यहां एक उदाहरण दिया गया है जो डेटाटाइम मान का उपयोग करता है:
SELECT TO_SECONDS('2020-10-30 10:23:47');
परिणाम:
+-----------------------------------+ | TO_SECONDS('2020-10-30 10:23:47') | +-----------------------------------+ | 63771272627 | +-----------------------------------+
माइक्रोसेकंड
TO_SECONDS()
माइक्रोसेकंड को अनदेखा करता है:
SELECT TO_SECONDS('2020-10-30 10:23:47.999999');
परिणाम:
+------------------------------------------+ | TO_SECONDS('2020-10-30 10:23:47.999999') | +------------------------------------------+ | 63771272627 | +------------------------------------------+
संख्यात्मक तिथियां
संख्यात्मक तिथियां समर्थित हैं:
SELECT TO_SECONDS(20201030);
परिणाम:
+----------------------+ | TO_SECONDS(20201030) | +----------------------+ | 63771235200 | +----------------------+
वर्तमान दिनांक/समय
यहां एक उदाहरण दिया गया है जो NOW()
. का उपयोग करता है वर्तमान दिनांक और समय के आधार पर सेकंड की संख्या वापस करने के लिए:
SELECT
NOW(),
TO_SECONDS(NOW());
परिणाम:
+---------------------+-------------------+ | NOW() | TO_SECONDS(NOW()) | +---------------------+-------------------+ | 2021-05-31 09:34:16 | 63789672856 | +---------------------+-------------------+
हालांकि, अगर हम CURDATE()
. का उपयोग करते हैं , हमें एक अलग परिणाम मिलेगा (क्योंकि CURDATE()
एक दिनांक मान देता है, जबकि NOW()
डेटाटाइम मान देता है)।
SELECT
NOW(),
TO_SECONDS(NOW()),
CURDATE(),
TO_SECONDS(CURDATE());
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
NOW(): 2021-05-31 09:35:01 TO_SECONDS(NOW()): 63789672901 CURDATE(): 2021-05-31 TO_SECONDS(CURDATE()): 63789638400
अमान्य तर्क
जब कोई अमान्य तर्क पारित किया जाता है, TO_SECONDS()
रिटर्न null
चेतावनी के साथ:
SELECT TO_SECONDS('Homer');
परिणाम:
+---------------------+ | TO_SECONDS('Homer') | +---------------------+ | NULL | +---------------------+ 1 row in set, 1 warning (0.000 sec)
चेतावनी की जाँच करें:
SHOW WARNINGS;
परिणाम:
+---------+------+-------------------------------+ | Level | Code | Message | +---------+------+-------------------------------+ | Warning | 1292 | Incorrect time value: 'Homer' | +---------+------+-------------------------------+
अनुपलब्ध तर्क
कॉलिंग TO_SECONDS()
तर्कों की गलत संख्या के साथ, या कोई तर्क पारित किए बिना, एक त्रुटि उत्पन्न होती है:
SELECT TO_SECONDS();
परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_SECONDS'
और दूसरा उदाहरण:
SELECT TO_SECONDS('2020-10-08', '10:09:10');
परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_SECONDS'