Mysql
 sql >> база данни >  >> RDS >> Mysql

Бройте дни между две дати, с изключение на почивните дни (само за MySQL)

Просто опитайте с помощта на проста функция :

СЪЗДАВАНЕ НА ФУНКЦИЯ TOTAL_WEEKDAYS(дата1 ДАТА, дата2 ДАТА)ВЪРНА ВЪВ ОБРАЩАНЕ ABS(DATEDIFF(дата2, дата1)) + 1 - ABS(DATEDIFF(ДОБАВЯНЕ НА ДАТА(дата2, ИНТЕРВАЛ 1 - DAYOFWEEK(дата2) ДЕН), ДОБАВЯНЕ date1, INTERVAL 1 - DAYOFWEEK(date1) DAY))) / 7 * 2 - (DAYOFWEEK(IF(date1  date2, date1, date2)) =7); 

Тест:

SELECT TOTAL_WEEKDAYS('2013-08-03', '2013-08-21') делнични дни1, TOTAL_WEEKDAYS('2013-08-21', '2013-08-03') делнични дни2;> 

Резултат:

<предварителен код>| ДЕЛНИЧНИ ДНИ1 | ДЕЛНИЧНИ ДНИ2 |------------------------------| 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. Python:най-добрата практика и най-сигурният начин за свързване с MySQL и изпълнение на заявки

  2. Как мога да преглеждам всички редове на таблица? (MySQL)

  3. MySQL:ALTER IGNORE TABLE ADD UNIQUE, какво ще бъде съкратено?

  4. Изчислете процентил от честотата в MySQL

  5. Как да открием дали дадена стойност съдържа поне една цифрова цифра в MySQL