Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Policz dni między dwiema datami, z wyłączeniem weekendów (tylko MySQL)

Po prostu wypróbuj to za pomocą prostej funkcji :

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;

Wynik :

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Połączenie MySQL przez tunel SSH - jak określić inny serwer MySQL?

  2. Jak uzyskać typy liczbowe z MySQL za pomocą PDO?

  3. Jak zrobić generator wierszy w MySQL?

  4. Wyłącz logowanie root w phpMyAdmin

  5. Dowiedz się, jak importować dane z Excela do bazy danych MySQL