मारियाडीबी में, UNIX_TIMESTAMP()
एक अंतर्निहित दिनांक और समय फ़ंक्शन है जो अपने तर्क (या तर्क की कमी) के आधार पर एक यूनिक्स टाइमस्टैम्प देता है।
यह इस तरह काम करता है:
- जब कॉल किया जाता है बिना एक तर्क, यह एक अहस्ताक्षरित पूर्णांक के रूप में एक यूनिक्स टाइमस्टैम्प ('1970-01-01 00:00:00' यूटीसी के बाद से सेकंड) देता है।
- जब कॉल किया जाता है साथ एक तर्क, यह '1970-01-01 00:00:00' UTC के बाद से सेकंड के रूप में तर्क का मान लौटाता है।
UNIX_TIMESTAMP()
. का उलटा कार्य है FROM_UNIXTIME()
।
सिंटैक्स
UNIX_TIMESTAMP()
निम्नलिखित दो तरीकों से बुलाया जा सकता है:
UNIX_TIMESTAMP()
UNIX_TIMESTAMP(date)
जहां date
एक दिनांक स्ट्रिंग, एक डेटाटाइम स्ट्रिंग, एक टाइमस्टैम्प, या प्रारूप में एक संख्या है YYMMDD
या YYYYMMDD
।
उदाहरण - बिना किसी तर्क के
यहां UNIX_TIMESTAMP()
पर कॉल करने का एक उदाहरण दिया गया है बिना किसी तर्क के:
SELECT UNIX_TIMESTAMP();
परिणाम:
+------------------+ | UNIX_TIMESTAMP() | +------------------+ | 1622502492 | +------------------+
यह हमें बताता है कि जब मैंने उस कथन को चलाया, तो 1970-01-01 00:00:00 से 1622502492 सेकंड बीत चुके थे।
उदाहरण - तर्क के साथ
यहाँ एक तर्क के साथ एक उदाहरण दिया गया है:
SELECT UNIX_TIMESTAMP('1970-01-02');
परिणाम:
+------------------------------+ | UNIX_TIMESTAMP('1970-01-02') | +------------------------------+ | 50400 | +------------------------------+
निम्नलिखित उदाहरण में, मैं UNIX_TIMESTAMP()
पर कॉल करता हूं दो बार; एक बार बिना तर्क के, और एक बार NOW()
. के साथ तर्क के रूप में।
SELECT
UNIX_TIMESTAMP(),
UNIX_TIMESTAMP(NOW());
परिणाम:
+------------------+-----------------------+ | UNIX_TIMESTAMP() | UNIX_TIMESTAMP(NOW()) | +------------------+-----------------------+ | 1622502678 | 1622502678 | +------------------+-----------------------+
डेटाटाइम स्ट्रिंग
उपरोक्त उदाहरण में, NOW()
एक डेटाटाइम मान देता है।
इस उदाहरण में, मैं स्पष्ट रूप से डेटाटाइम स्ट्रिंग प्रदान करता हूं:
SELECT UNIX_TIMESTAMP('2020-10-30 10:23:47');
परिणाम:
+---------------------------------------+ | UNIX_TIMESTAMP('2020-10-30 10:23:47') | +---------------------------------------+ | 1604017427 | +---------------------------------------+
माइक्रोसेकंड
UNIX_TIMESTAMP()
माइक्रोसेकंड का समर्थन करता है:
SELECT UNIX_TIMESTAMP('2020-10-30 10:23:47.123456');
परिणाम:
+----------------------------------------------+ | UNIX_TIMESTAMP('2020-10-30 10:23:47.123456') | +----------------------------------------------+ | 1604017427.123456 | +----------------------------------------------+
संख्यात्मक तिथियां
संख्यात्मक तिथियां समर्थित हैं:
SELECT UNIX_TIMESTAMP(20201030);
परिणाम:
+--------------------------+ | UNIX_TIMESTAMP(20201030) | +--------------------------+ | 1603980000 | +--------------------------+
अमान्य तर्क
जब कोई अमान्य तर्क पारित किया जाता है, UNIX_TIMESTAMP()
रिटर्न null
चेतावनी के साथ:
SELECT UNIX_TIMESTAMP('Homer');
परिणाम:
+-------------------------+ | UNIX_TIMESTAMP('Homer') | +-------------------------+ | NULL | +-------------------------+ 1 row in set, 1 warning (0.001 sec)
चेतावनी की जाँच करें:
SHOW WARNINGS;
परिणाम:
+---------+------+-------------------------------+ | Level | Code | Message | +---------+------+-------------------------------+ | Warning | 1292 | Incorrect time value: 'Homer' | +---------+------+-------------------------------+
बहुत अधिक तर्क
कॉलिंग UNIX_TIMESTAMP()
बहुत अधिक तर्कों के परिणामस्वरूप त्रुटि होती है:
SELECT UNIX_TIMESTAMP('1970-01-02', '1970-01-03');
परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNIX_TIMESTAMP'