मारियाडीबी में, WEEKOFYEAR()
एक अंतर्निहित दिनांक और समय फ़ंक्शन है जो किसी दिए गए दिनांक के कैलेंडर सप्ताह को 1
से श्रेणी में एक संख्या के रूप में लौटाता है करने के लिए 53
।
यह WEEK()
. का उपयोग करने के बराबर है मोड 3 में कार्य करता है, और इसलिए इसका परिणाम ISO 8601:1988 के अनुसार है।
यह एक तर्क को स्वीकार करता है; जिस तारीख से आप सप्ताह निकालना चाहते हैं।
सिंटैक्स
वाक्य रचना इस प्रकार है:
WEEKOFYEAR(date)
जहां date
कैलेंडर सप्ताह से प्राप्त करने के लिए दिनांक अभिव्यक्ति है।
उदाहरण
यहां एक उदाहरण दिया गया है:
SELECT WEEKOFYEAR('2030-01-01');
परिणाम:
+--------------------------+ | WEEKOFYEAR('2030-01-01') | +--------------------------+ | 1 | +--------------------------+
यह निम्न कार्य करने के बराबर है:
SELECT WEEK('2030-01-01', 3);
परिणाम:
+-----------------------+ | WEEK('2030-01-01', 3) | +-----------------------+ | 1 | +-----------------------+
डेटाटाइम मान
WEEKOFYEAR()
फ़ंक्शन डेटाटाइम मानों के साथ भी काम करता है:
SELECT WEEKOFYEAR('2030-08-01 10:30:45');
परिणाम:
+-----------------------------------+ | WEEKOFYEAR('2030-08-01 10:30:45') | +-----------------------------------+ | 31 | +-----------------------------------+
संख्यात्मक तिथियां
तिथियों को एक संख्या के रूप में पारित करना भी संभव है, जब तक कि यह एक तिथि के रूप में समझ में आता है।
उदाहरण
SELECT WEEKOFYEAR(20301125);
परिणाम:
+----------------------+ | WEEKOFYEAR(20301125) | +----------------------+ | 48 | +----------------------+
या निम्नलिखित भी (जो दो अंकों वाले वर्ष का उपयोग करता है):
SELECT WEEKOFYEAR(301125);
परिणाम:
+--------------------+ | WEEKOFYEAR(301125) | +--------------------+ | 48 | +--------------------+
लेकिन इसे एक तारीख के रूप में समझना चाहिए। अगर मैं दिन के हिस्से को अमान्य दिन में बढ़ा दूं तो क्या होगा:
SELECT WEEKOFYEAR(20301135);
परिणाम:
+----------------------+ | WEEKOFYEAR(20301135) | +----------------------+ | NULL | +----------------------+ 1 row in set, 1 warning (0.000 sec)
यह null
लौटा एक चेतावनी के साथ।
आइए चेतावनी देखें:
SHOW WARNINGS;
परिणाम:
+---------+------+--------------------------------------+ | Level | Code | Message | +---------+------+--------------------------------------+ | Warning | 1292 | Incorrect datetime value: '20301135' | +---------+------+--------------------------------------+
अन्य सीमांकक
आप तिथि के लिए अन्य सीमांकक का उपयोग कर सकते हैं। जब तारीखों पर सीमांकक की बात आती है तो मारियाडीबी काफी क्षमाशील है। यहां कुछ मान्य उदाहरण दिए गए हैं:
SELECT
WEEKOFYEAR('2030/06/25'),
WEEKOFYEAR('2030,06,25'),
WEEKOFYEAR('2030:06:25'),
WEEKOFYEAR('2030;06!25');
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
WEEKOFYEAR('2030/06/25'): 26 WEEKOFYEAR('2030,06,25'): 26 WEEKOFYEAR('2030:06:25'): 26 WEEKOFYEAR('2030;06!25'): 26
वर्तमान तिथि
हम NOW()
pass पास कर सकते हैं वर्तमान तिथि का उपयोग करने के लिए डेटाटाइम तर्क के रूप में:
SELECT
NOW(),
WEEKOFYEAR(NOW());
परिणाम:
+---------------------+-------------------+ | NOW() | WEEKOFYEAR(NOW()) | +---------------------+-------------------+ | 2021-05-17 09:42:13 | 20 | +---------------------+-------------------+
अमान्य तर्क
जब एक अमान्य तर्क पारित किया गया, WEEKOFYEAR()
रिटर्न null
:
SELECT WEEKOFYEAR('2030-65-78');
परिणाम:
+--------------------------+ | WEEKOFYEAR('2030-65-78') | +--------------------------+ | NULL | +--------------------------+ 1 row in set, 1 warning (0.000 sec)
आइए चेतावनी दिखाते हैं:
SHOW WARNINGS;
परिणाम:
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Incorrect datetime value: '2030-65-78' | +---------+------+----------------------------------------+
अनुपलब्ध तर्क
कॉलिंग WEEKOFYEAR()
तर्कों की गलत संख्या के साथ, या कोई तर्क पारित किए बिना, एक त्रुटि उत्पन्न होती है:
SELECT WEEKOFYEAR();
परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'WEEKOFYEAR'
और दूसरा उदाहरण:
SELECT WEEKOFYEAR('2030-12-10', 1);
परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'WEEKOFYEAR'