मारियाडीबी में, YEAR()
एक अंतर्निहित दिनांक और समय फ़ंक्शन है जो किसी दिए गए दिनांक अभिव्यक्ति से वर्ष लौटाता है।
यह एक तर्क को स्वीकार करता है, जिस तारीख से आप वर्ष निकालना चाहते हैं।
यह वर्ष को 1000
. श्रेणी में एक संख्या के रूप में लौटाता है करने के लिए 9999
. शून्य तिथियों के लिए (उदा. 0000-00-00
), परिणाम 0
. है ।
सिंटैक्स
वाक्य रचना इस प्रकार है:
YEAR(date)
जहां date
वर्ष प्राप्त करने के लिए दिनांक अभिव्यक्ति है।
उदाहरण
यहां एक उदाहरण दिया गया है:
SELECT YEAR('2030-08-01');
परिणाम:
+--------------------+ | YEAR('2030-08-01') | +--------------------+ | 2030 | +--------------------+
डेटाटाइम मान
यह डेटाटाइम मानों के साथ भी काम करता है:
SELECT YEAR('2030-08-01 10:30:45');
परिणाम:
+-----------------------------+ | YEAR('2030-08-01 10:30:45') | +-----------------------------+ | 2030 | +-----------------------------+
शून्य तिथियां
शून्य तिथियों का परिणाम 0
. होता है .
उदाहरण:
SELECT YEAR('0000-00-00');
परिणाम:
+--------------------+ | YEAR('0000-00-00') | +--------------------+ | 0 | +--------------------+
संख्यात्मक तिथियां
तिथियों को एक संख्या के रूप में पारित करना भी संभव है, जब तक कि यह एक तिथि के रूप में समझ में आता है।
उदाहरण
SELECT YEAR(20301125);
परिणाम:
+----------------+ | YEAR(20301125) | +----------------+ | 2030 | +----------------+
या निम्नलिखित भी (जो दो अंकों वाले वर्ष का उपयोग करता है):
SELECT YEAR(301125);
परिणाम:
+--------------+ | YEAR(301125) | +--------------+ | 2030 | +--------------+
लेकिन इसे एक तारीख के रूप में समझना चाहिए। अगर मैं दिन के हिस्से को अमान्य दिन में बढ़ा दूं तो क्या होगा:
SELECT YEAR(20301135);
परिणाम:
+----------------+ | YEAR(20301135) | +----------------+ | NULL | +----------------+ 1 row in set, 1 warning (0.000 sec)
हम इस तरह चेतावनी की जांच कर सकते हैं:
SHOW WARNINGS;
परिणाम:
+---------+------+--------------------------------------+ | Level | Code | Message | +---------+------+--------------------------------------+ | Warning | 1292 | Incorrect datetime value: '20301135' | +---------+------+--------------------------------------+
अन्य सीमांकक
आप तिथि के लिए अन्य सीमांकक का उपयोग कर सकते हैं। जब तारीखों पर सीमांकक की बात आती है तो मारियाडीबी काफी क्षमाशील है। यहां कुछ मान्य उदाहरण दिए गए हैं:
SELECT
YEAR('2030/06/25'),
YEAR('2030,06,25'),
YEAR('2030:06:25'),
YEAR('2030;06!25');
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
YEAR('2030/06/25'): 2030 YEAR('2030,06,25'): 2030 YEAR('2030:06:25'): 2030 YEAR('2030;06!25'): 2030
वर्तमान तिथि
हम NOW()
pass पास कर सकते हैं वर्तमान तिथि का उपयोग करने के लिए डेटाटाइम तर्क के रूप में:
SELECT
NOW(),
YEAR(NOW());
परिणाम:
+---------------------+-------------+ | NOW() | YEAR(NOW()) | +---------------------+-------------+ | 2021-05-18 08:55:02 | 2021 | +---------------------+-------------+
अमान्य तर्क
जब कोई अमान्य तर्क पारित किया गया, YEAR()
रिटर्न null
:
SELECT YEAR('2030-65-78');
परिणाम:
+--------------------+ | YEAR('2030-65-78') | +--------------------+ | NULL | +--------------------+ 1 row in set, 1 warning (0.001 sec)
चेतावनी की जाँच करें:
SHOW WARNINGS;
परिणाम:
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Incorrect datetime value: '2030-65-78' | +---------+------+----------------------------------------+
अनुपलब्ध तर्क
कॉलिंग YEAR()
तर्कों की गलत संख्या के साथ, या कोई तर्क पारित किए बिना, एक त्रुटि उत्पन्न होती है:
SELECT YEAR();
परिणाम:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1पर ')' के पास उपयोग करने के लिए सही सिंटैक्स के लिए अपने मारियाडीबी सर्वर संस्करण से संबंधित मैनुअल की जांच करें।
और दूसरा उदाहरण:
SELECT YEAR('2030-12-10', '2031-12-10');
परिणाम:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '2031-12-10')' at line 1