Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में DAYNAME() से तारीख का दिन नाम कैसे प्राप्त करें?

MySQL में किसी DATE/DATETIME कॉलम से सप्ताह के दिन का नाम (जैसे Monday, Tuesday) प्राप्त करने के लिए DAYNAME() फंक्शन का उपयोग करें। यह रिपोर्टिंग, शेड्यूलिंग, और दिन-आधारित विश्लेषण के लिए उपयोगी है।

उदाहरण: ShippingDate से दिन नाम

डेमो टेबल बनाएं:

mysql> CREATE TABLE DemoTable1954 (ShippingDate DATE);

डेटा इन्सर्ट करें:

mysql> INSERT INTO DemoTable1954 VALUES
('2019-12-15'), ('2018-04-11'), ('2019-01-31'), ('2016-10-01');

क्वेरी:

mysql> SELECT DAYNAME(ShippingDate) AS Day FROM DemoTable1954;

आउटपुट:

+-----------+
| Day       |
+-----------+
| Sunday    |
| Wednesday |
| Thursday  |
| Saturday  |
+-----------+

संबंधित दिनांक फंक्शन

फंक्शनवापसीउदाहरण (2019-12-15)
DAYNAME()दिन नामSunday
DAYOFWEEK()दिन संख्या (1=रविवार)1
WEEKDAY()दिन सूचकांक (0=सोमवार)6
DAYOFMONTH()महीने का दिन15
DAYOFYEAR()वर्ष का दिन349
MONTHNAME()महीना नामDecember
QUARTER()तिमाही (1-4)4

भाषा/लोकेल

  • दिन नाम सर्वर की lc_time_names सिस्टम वेरिएबल पर निर्भर करते हैं
  • डिफ़ॉल्ट: अंग्रेजी (en_US)
  • बदलें: SET lc_time_names = 'hi_IN'; → रविवार, सोमवार,...
  • सत्र के लिए: SET SESSION lc_time_names = 'hi_IN';

उपयोग के मामले

-- सप्ताहांत पहचान
SELECT * FROM orders 
WHERE DAYNAME(order_date) IN ('Saturday', 'Sunday');

-- दिन के अनुसार ग्रुपिंग
SELECT DAYNAME(created_at) AS day, COUNT(*) AS orders
FROM orders
GROUP BY DAYNAME(created_at)
ORDER BY FIELD(day, 'Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday');

-- व्यावसायिक दिन फ़िल्टर
WHERE DAYOFWEEK(date) BETWEEN 2 AND 6  -- सोम-शुक्र

प्रदर्शन

  • DAYNAME() इंडेक्स उपयोग नहीं रोकता (WHERE में उपयोग न होने पर)
  • WHERE क्लॉज़ में DAYNAME(date) = 'Monday' इंडेक्स उपयोग नहीं कर सकता
  • बेहतर: रेंज क्वेरी या जनरेटेड कॉलम + इंडेक्स

जनरेटेड कॉलम विकल्प (MySQL 5.7+)

ALTER TABLE orders
ADD COLUMN day_name VARCHAR(10) 
GENERATED ALWAYS AS (DAYNAME(order_date)) STORED,
ADD INDEX idx_day_name (day_name);

तब: WHERE day_name = 'Monday' - इंडेक्स उपयोग करेगा।

  1. - MySQL में डुप्लिकेट रिकॉर्ड के लिए कॉलम का योग प्राप्त करें

    इसके लिए GROUP BY क्लॉज के साथ एग्रीगेट फ़ंक्शन SUM() का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable( Name varchar(100), Score int ); Query OK, 0 rows affected (0.70 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTabl

  1. - MySQL में जन्म तिथि (Date of Birth) रिकॉर्ड के आधार पर दिन का नाम कैसे प्रदर्शित करें

    जन्म तिथि वाले रिकॉर्ड से दिन का नाम प्रदर्शित करने के लिए DAYNAME() का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable795 ( DateOfBirth date ); Query OK, 0 rows affected (0.61 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable7

  1. - MySQL में DATE_FORMAT का उपयोग करके DATETIME से केवल तिथि प्राप्त करना

    MySQL में DATE_FORMAT() के साथ DATETIME से केवल तिथि भाग निकालना DATE_FORMAT() फ़ंक्शन तिथि/समय मान को निर्दिष्ट फॉर्मेट स्ट्रिंग के अनुसार फॉर्मेट करता है। %d.%m.%Y फॉर्मेट दिन.महीना.वर्ष देता है। व्यावहारिक उदाहरण तालिका बनाना CREATE TABLE DemoTable ( AdmissionDate DATETIME ); DATETIME मान