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

क्या महीने का पहला और अंतिम कार्यदिवस प्राप्त करने का कोई तरीका है?

कार्यों को परिभाषित करने के बारे में कैसे FIRST_WDOM() (सप्ताह/माह का कार्य दिवस) और LAST_WDOM() <की शैली में कोड>LAST_DAY () ?

DELIMITER //
CREATE FUNCTION first_wdom (d DATETIME) -- First work/week day of month
RETURNS DATE DETERMINISTIC
BEGIN
  DECLARE first_dom DATE;
  SET first_dom = DATE_FORMAT(d, '%Y-%m-01');

  RETURN first_dom + INTERVAL (CASE DAYOFWEEK(first_dom)
                               WHEN 1 THEN 1
                               WHEN 7 THEN 2
                               ELSE 0
                               END) DAY;
END //
CREATE FUNCTION last_wdom (d DATETIME) -- Last work/week day of month
RETURNS DATE DETERMINISTIC
BEGIN
  DECLARE last_dom DATE;
  SET last_dom = LAST_DAY(d);

  RETURN last_dom - INTERVAL (CASE DAYOFWEEK(last_dom)
                              WHEN 1 THEN 2
                              WHEN 7 THEN 1
                              ELSE 0
                              END) DAY;
END //
DELIMITER ;

mysql> SELECT FIRST_WDOM('2011-05-10'), LAST_WDOM('2011-05-10');
+--------------------------+-------------------------+
| FIRST_WDOM('2011-05-10') | LAST_WDOM('2011-05-10') |
+--------------------------+-------------------------+
| 2011-05-02               | 2011-05-31              | 
+--------------------------+-------------------------+
1 row in set (0.01 sec)

यह केवल ic3b3rg का उत्तर , और मानता है कि शनिवार और रविवार आपके सप्ताहांत के दिन हैं। मैं इनपुट प्रकार के रूप में DATE के बजाय DATETIME का उपयोग करता हूं, जब पास करते समय ट्रंकेशन चेतावनियों से बचने के लिए, कहें, NOW()



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सत्र_स्टार्ट उपयोगकर्ता प्रोफ़ाइल विवरण

  2. दो तिथियों के बीच डेटा का चयन करें?

  3. एमएस एक्सेस की तरह निर्देशिका पथ का उपयोग करके MySQL डेटाबेस फ़ाइल (.sql) से कैसे जुड़ें?

  4. क्या कोई यह समझाने में मदद कर सकता है कि SQL जॉइन का उपयोग क्यों नहीं करना खराब अभ्यास और गलत है?

  5. प्रक्रिया के लिए MySQL foreach विकल्प