Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL में तिथि के अनुसार ऑर्डर कैसे करें

समस्या:

आप पंक्तियों को तिथि के अनुसार क्रमित करना चाहते हैं।

उदाहरण 1:

exam टेबल में दो कॉलम होते हैं, subject और exam_date

विषय परीक्षा_तिथि
गणित 2019-12-19
अंग्रेज़ी 2020-01-08
विज्ञान 2020-01-05
स्वास्थ्य 2020-01-05
कला शून्य

आप पंक्तियों को exam_date . के अनुसार क्रमित करना चाहते हैं ।

समाधान:

SELECT *
FROM exam
ORDER BY exam_date;

परिणाम इस तरह दिखता है (पंक्तियों को exam_date . द्वारा आरोही क्रम में क्रमबद्ध किया जाता है ):

विषय परीक्षा_तिथि
कला शून्य
गणित 2019-12-19
विज्ञान 2020-01-05
स्वास्थ्य 2020-01-05
अंग्रेज़ी 2020-01-08

चर्चा:

ORDER BY का प्रयोग करें कीवर्ड और कॉलम का नाम जिसके द्वारा आप सॉर्ट करना चाहते हैं। इस तरह, आप इस कॉलम के आधार पर डेटा को आरोही क्रम में क्रमबद्ध करेंगे। आप ASC . का भी उपयोग कर सकते हैं कीवर्ड यह स्पष्ट करने के लिए कि क्रम आरोही है (सबसे पहले की तारीख पहले दिखाई जाती है, नवीनतम तारीख आखिरी दिखाई जाती है, आदि)।

SELECT *
FROM exam
ORDER BY exam_date ASC;

यदि आप सबसे पहले नवीनतम तिथि और सबसे अंतिम तिथि देखना चाहते हैं, तो आपको अवरोही क्रम में क्रमबद्ध करना होगा। DESC का उपयोग करें इस मामले में कीवर्ड।

SELECT *
FROM exam
ORDER BY exam_date DESC;

ध्यान दें कि MySQL में, NULL आरोही क्रम में छँटाई करते समय s पहले प्रदर्शित होते हैं और अवरोही क्रम में छँटाई करते समय अंतिम होते हैं। साथ ही, समान exam_date . वाली पंक्तियां यादृच्छिक क्रम में प्रदर्शित होते हैं (आप Science देख सकते हैं तीसरा और Health चौथा, या Health तीसरा और Science चौथा)।

उदाहरण 2:

exam तालिका में निम्नलिखित कॉलम हैं:subject , exam_year , exam_month , और exam_day . महीने नामों में दिए जाते हैं, संख्या में नहीं।

<थ>परीक्षा_दिन
विषय परीक्षा_वर्ष परीक्षा_माह
गणित 2019 दिसंबर 19
अंग्रेज़ी 2020 जनवरी 8
विज्ञान 2020 जनवरी 5
स्वास्थ्य 2020 जनवरी 5
कला शून्य शून्य शून्य

आप परीक्षा तिथि के अनुसार पंक्तियों को क्रमबद्ध करना चाहते हैं।

समाधान:

SELECT *
FROM exam
ORDER BY STR_TO_DATE(CONCAT(exam_year, ' ', exam_month, ' ', exam_day), '%Y %M %d');

परिणाम इस तरह दिखता है (पंक्तियों को exam_year . द्वारा आरोही क्रम में क्रमबद्ध किया जाता है , exam_month , और exam_date ):

<थ>परीक्षा_दिन
विषय परीक्षा_वर्ष परीक्षा_माह
कला शून्य शून्य शून्य
गणित 2019 दिसंबर 19
स्वास्थ्य 2020 जनवरी 5
विज्ञान 2020 जनवरी 5
अंग्रेज़ी 2020 जनवरी 8

चर्चा:

दिनांक के अनुसार क्रमित करने के लिए, वर्ष, माह और दिन के मानों से दिनांक मान बनाएं। ऐसा करने के लिए, STR_TO_DATE() फ़ंक्शन का उपयोग करें। यदि आपके पास 'Year Month Day . में एक स्ट्रिंग के रूप में संग्रहीत दिनांक है ' प्रारूप में, आप इसे STR_TO_DATE(date_string, '%Y %M %d') का उपयोग करके किसी तिथि पर कास्ट कर सकते हैं . लेकिन पहले, आपको CONCAT () फ़ंक्शन का उपयोग करके एक स्ट्रिंग बनाने की आवश्यकता है:

CONCAT(exam_year, ' ', exam_month, ' ', exam_day)

CONCAT() फ़ंक्शन सभी तर्कों को एक स्ट्रिंग में जोड़ता है। आपको संख्याओं को स्ट्रिंग्स में डालने की आवश्यकता नहीं है। चूंकि आप 'Year Month Day . में एक स्ट्रिंग प्राप्त करना चाहते हैं ' प्रारूप, तर्क हैं exam_year , exam_month , exam_day , और उनके बीच रिक्त स्थान।

फिर, आपको STR_TO_DATE(date_string, '%Y %M %d') का उपयोग करके इस स्ट्रिंग को दिनांक में बदलने की आवश्यकता है। समारोह। इस फ़ंक्शन का दूसरा तर्क दिनांक स्वरूप है। %Y वर्ष के लिए खड़ा है, %M महीने के लिए खड़ा है (इसका पूरा नाम, संख्या नहीं), और %d दिन के लिए खड़ा है।

STR_TO_DATE(CONCAT(exam_year, ' ', exam_month, ' ', exam_day), '%Y %M %d')

इसका उपयोग ORDER BY के साथ करें तिथि के अनुसार पंक्तियों को आरोही क्रम में क्रमबद्ध करने के लिए खंड। यदि आप पंक्तियों को अवरोही क्रम में देखना चाहते हैं, तो बस एक DESC संलग्न करें कीवर्ड, इस तरह:

SELECT *
FROM exam
ORDER BY STR_TO_DATE(CONCAT(exam_year, ' ', exam_month, ' ', exam_day), '%Y %M %d') DESC;

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CURRENT_DATE/CURDATE() डिफ़ॉल्ट DATE मान के रूप में काम नहीं कर रहा है

  2. सुरक्षा सलाहकार MySQL अलर्ट को कैसे ठीक करें

  3. WEEKOFYEAR () उदाहरण – MySQL

  4. MySQL में सामान्य तालिका अभिव्यक्ति

  5. 'Automysqlbackup' और 'Autopostgresqlbackup' टूल्स का उपयोग करके MySQL/MariaDB और PostgreSQL का बैकअप/पुनर्स्थापित कैसे करें