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

Как да преброите разликата в датите, с изключение на уикенда и празниците в MySQL

Може да искате да опитате това:

  1. Пребройте броя на работните дни (взех го от тук )

    SELECT 5 * (DATEDIFF('2012-12-31', '2012-01-01') DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY('2012-01-01') + WEEKDAY('2012-12-31') + 1, 1)

    Това ви дава 261 работни дни за 2012 г.

  2. Сега трябва да знаете вашите празници, които не са в уикенд

    SELECT COUNT(*) FROM holidays WHERE DAYOFWEEK(holiday) < 6

    Резултатът от това зависи от вашата празнична трапеза.

  3. Трябва да получим това с една заявка:

    SELECT 5 * (DATEDIFF('2012-12-31', '2012-01-01') DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY('2012-01-01') + WEEKDAY('2012-12-31') + 1, 1) - (SELECT COUNT(*) FROM holidays WHERE DAYOFWEEK(holiday) < 6)

    Това трябва да е.

Редактиране:Моля, имайте предвид, че това работи правилно само ако крайната ви дата е по-висока от началната ви.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Извличане на последната вмъкната идентификационна форма на съхранената процедура в MySQL

  2. pip install mysqlclient връща фатална грешка C1083:Не може да се отвори файл:'mysql.h':Няма такъв файл или директория

  3. MySQL вмъкване в DATETIME:безопасно ли е да се използва ISO::8601 формат?

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

  5. mysql, транспониране/завъртане на ред в колона, избор на променлива