程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在MySQL中计算不包括周末和节假日的日期差大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何在MySQL中计算不包括周末和节假日的日期差?

开发过程中遇到如何在MySQL中计算不包括周末和节假日的日期差的问题如何解决?下面主要结合日常开发的经验,给出你关于如何在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年)。

  1. 现在您需要知道不在周末的假期

SELECT COUNT(*) FROM holIDays WHERE DAYOFWEEK(holIDay) < 6

其结果取决于您的假期表。

  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) - (SELECT COUNT(*) FROM holIDays WHERE DAYOFWEEK(holIDay) < 6)

应该是这样。

编辑:

解决方法

我需要计算两个日期之间的天数(工作日),不包括周末(最重要)和假期

SELECT DATEDIFF(END_DATE,start_datE) from accounts

但是,我不知道该如何在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 'Date Projected Finish',`checkpackagesID` int(11) DEFAULT NULL COMMENT 'Default check Package Auto Assign Once Initiate Start',`Alacartepackage1` int(11) DEFAULT NULL COMMENT 'Ala carte request #2',`Alacartepackage2` int(11) DEFAULT NULL COMMENT 'Ala carte request #3',`OperatorID` int(11) NOT NULL COMMENT 'User Account - Operator',`Status` int(11) NOT NULL COMMENT 'Status',`caseRef` varchar(100) NOT NULL,PRIMARY KEY (`ID`)
) ENGINE=MyISAM  DEFAULT CHARSET=laTin1 AUTO_INCREMENT=293 ;

--
-- Dumping data for table `candidatecase`
--

INSERT INTO `candidatecase` (`ID`,`createdby`,`UseraccountID`,`ReportReadyID`,`DateCreated`,`InitiatedDate`,`ActualCompletedDate`,`ProjectedCompletedDate`,`checkpackagesID`,`Alacartepackage1`,`Alacartepackage2`,`OperatorID`,`Status`,`caseRef`) VALUES
(1,43,70,NULL,'2011-07-22 02:29:31','2011-07-07 07:27:44','2011-07-17 06:53:52',11,44,6,''),(2,74,'2012-04-03 04:17:15','2011-07-11 07:07:23','2011-07-13 05:32:58','2011-07-21 07:01:34',20,51,(3,75,'2011-07-29 04:10:07','2011-07-11 07:27:12','2011-07-21 07:02:14',45,(4,78,'2011-07-18 03:32:27','2011-07-11 07:51:31','2011-07-13 02:18:34','2011-07-21 07:37:53',(5,76,'2011-07-29 04:09:19','2011-07-11 07:51:11','2011-07-21 07:38:30',(6,77,'2011-07-18 03:32:49','2011-07-11 07:51:34','2011-07-18 02:18:46','2011-07-21 07:39:00',(7,79,'2011-07-18 03:33:02','2011-07-11 07:53:24','2011-07-18 01:50:12','2011-07-21 07:42:57',(8,80,'2011-07-29 04:10:38','2011-07-11 07:53:58','2011-07-21 07:43:14',(9,81,'2011-07-18 03:31:54','2011-07-11 07:53:49','2011-07-13 02:17:02','2011-07-21 07:43:43',(11,88,'2011-07-18 03:15:53','2011-07-13 04:57:38','2011-07-15 08:57:15','2011-07-23 04:39:14',12,(13,90,'2011-07-26 07:39:24','2011-07-13 12:16:48','2011-07-23 12:13:50',15,(63,176,'2011-09-13 08:23:13','2011-08-26 10:00:32','2011-09-05 09:58:47',41,(62,174,'2011-08-24 03:54:30','2011-08-24 03:53:13','2011-08-29 03:52:48',17,(61,173,'2011-08-24 03:55:05','2011-08-24 03:53:39','2011-08-29 03:52:36',(60,172,'2011-08-24 03:22:41','2011-08-24 03:21:50','2011-08-29 03:21:11',(59,171,'2011-08-24 03:23:19','2011-08-24 03:22:00','2011-08-29 03:20:57','');

大佬总结

以上是大佬教程为你收集整理的如何在MySQL中计算不包括周末和节假日的日期差全部内容,希望文章能够帮你解决如何在MySQL中计算不包括周末和节假日的日期差所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。