sql >> Databáze >  >> RDS >> Mysql

Počítání dnů mezi dvěma daty, kromě víkendů (pouze MySQL)

Jednoduše to vyzkoušejte pomocí jednoduché funkce :

CREATE FUNCTION TOTAL_WEEKDAYS(date1 DATE, date2 DATE)
RETURNS INT
RETURN ABS(DATEDIFF(date2, date1)) + 1
     - ABS(DATEDIFF(ADDDATE(date2, INTERVAL 1 - DAYOFWEEK(date2) DAY),
                    ADDDATE(date1, INTERVAL 1 - DAYOFWEEK(date1) DAY))) / 7 * 2
     - (DAYOFWEEK(IF(date1 < date2, date1, date2)) = 1)
     - (DAYOFWEEK(IF(date1 > date2, date1, date2)) = 7);

Test:

SELECT TOTAL_WEEKDAYS('2013-08-03', '2013-08-21') weekdays1,
       TOTAL_WEEKDAYS('2013-08-21', '2013-08-03') weekdays2;

Výsledek:

| WEEKDAYS1 | WEEKDAYS2 |
-------------------------
|        13 |        13 |


  1. ORACLE - Vyberte počet na dílčím dotazu

  2. Nainstalujte a používejte Percona Toolkit na Centos 7

  3. PHP zobrazit obrázek BLOB z MySQL

  4. Jak uvolnit tabulku v PostgreSQL