मारियाडीबी में, 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'