YEAR(CURDATE()) से वर्तमान वर्ष प्राप्त करना
MySQL में WHERE क्लॉज में वर्तमान वर्ष का उपयोग करने के लिए YEAR() फंक्शन के साथ CURDATE() का उपयोग करें।
टेबल बनाना और डेटा इन्सर्ट करना
CREATE TABLE DemoTable1360 (JoiningYear INT); INSERT INTO DemoTable1360 VALUES(1998); INSERT INTO DemoTable1360 VALUES(2018); INSERT INTO DemoTable1360 VALUES(2016); INSERT INTO DemoTable1360 VALUES(2019); INSERT INTO DemoTable1360 VALUES(2017); INSERT INTO DemoTable1360 VALUES(2015);
मौजूदा डेटा
+-------------+ | JoiningYear | +-------------+ | 1998 | | 2018 | | 2016 | | 2019 | | 2017 | | 2015 | +-------------+
क्वेरी: वर्तमान वर्ष के रिकॉर्ड
SELECT * FROM DemoTable1360 WHERE JoiningYear = YEAR(CURDATE());
आउटपुट (मान लें वर्तमान वर्ष 2019 है)
+-------------+ | JoiningYear | +-------------+ | 2019 | +-------------+
वैकल्पिक फंक्शन्स
| फंक्शन | विवरण | उदाहरण आउटपुट |
|---|---|---|
YEAR(CURDATE()) | वर्तमान डेट का वर्ष | 2019 |
YEAR(NOW()) | वर्तमान डेटाटाइम का वर्ष | 2019 |
EXTRACT(YEAR FROM CURDATE()) | ANSI SQL स्टैंडर्ड | 2019 |
व्यावहारिक उपयोग के उदाहरण
इस वर्ष जॉइन किए एम्प्लॉई
SELECT * FROM Employees WHERE YEAR(JoiningDate) = YEAR(CURDATE());
पिछले वर्ष के रिकॉर्ड
SELECT * FROM Orders WHERE YEAR(OrderDate) = YEAR(CURDATE()) - 1;
वर्तमान वर्ष से पहले के रिकॉर्ड
SELECT * FROM Logs WHERE YEAR(LogDate) < YEAR(CURDATE());
परफॉरमेंस टिप
YEAR(Col) = 2019 इंडेक्स उपयोग को रोक सकता है। बेहतर:
WHERE JoiningYear = 2019 -- अगर कॉलम INT है -- या डेट कॉलम के लिए WHERE JoiningDate >= '2019-01-01' AND JoiningDate < '2020-01-01'
एप्लिकेशन कोड में
-- PHP में
$currentYear = date('Y');
$stmt = $pdo->prepare("SELECT * FROM DemoTable1360 WHERE JoiningYear = ?");
$stmt->execute([$currentYear]);