Excel具有NETWORKDAYS()函数,可以查找两个日期之间的工作日数.
任何人都有类似MySQL的功能?由于假期增加了复杂性,解决方案不必处理假期.
我需要计算两个日期之间的天数(工作日),不包括周末(最重要)和假期
SELECT DATEDIFF(end_date, start_date) from accounts
Run Code Online (Sandbox Code Playgroud)
但是,我不知道我应该如何在MySQL中这样做,我发现这篇文章计算两个日期之间的天数,不包括周末(仅限MySQL).我无法弄清楚如何在mysql中进行函数查询,能否给出一些如何用mysql查询实现这一点的信息.如果我遗失了什么让我知道.
[编辑]
CREATE TABLE `candidatecase` (
`ID` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Unique ID',
`CreatedBy` int(11) NOT NULL,
`UseraccountID` int(11) NOT NULL COMMENT 'User Account ID',
`ReportReadyID` int(11) DEFAULT NULL COMMENT 'Report Ready ID',
`DateCreated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Date Created',
`InitiatedDate` timestamp NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Date Initiated',
`ActualCompletedDate` timestamp NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Date Completed Case',
`ProjectedCompletedDate` timestamp NULL DEFAULT '0000-00-00 00:00:00' COMMENT …
Run Code Online (Sandbox Code Playgroud) 我搜索了很多例子,我得到了很好的例子:
但是没有得到最有希望的解决方案,所以我可以在我的mysql函数中使用来查询行的十万行.
这个是一个非常新的概念,但是没有像@start_date = '2013-08-03' , @end_date = '2013-08-21'
预期的答案那样起作用:13,它只给出12,
SELECT 5 * (DATEDIFF(@end_date, @start_date) DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY(@start_date) + WEEKDAY(@end_date) + 1, 1);
Run Code Online (Sandbox Code Playgroud)
所以我试着自己做 -
Concept :
Input : 1. period_from_date - from date
2. period_to_date - to date
3. days_to_exclude - mapping : S M T W TH F Sat => 2^0 + 2^6
(sat and sun to exclude) ^ ^ ^ ^ ^ ^ ^
0 1 2 3 4 …
Run Code Online (Sandbox Code Playgroud)