`
chenhsong
  • 浏览: 43956 次
  • 性别: Icon_minigender_1
  • 来自: 洛阳
社区版块
存档分类
最新评论

SQL实现工作日计算

 
阅读更多
CREATE FUNCTION Time_Span_of_minutes(
start_day DATETIME,
end_day DATETIME)
RETURNS FLOAT
BEGIN
			-- 返回按分钟计算两段时间的间隔,采用逐日靠近的方法求解,一天按8小时480分钟计算,周末不计,不考虑法定节假日。
			-- 如果起始日期在周末,则计算当天时间。
			DECLARE minutes FLOAT;
			DECLARE next_day DATETIME;
			SET minutes=0.0;
			SET next_day=start_day;
				
			IF(TIMESTAMPDIFF(DAY,start_day,end_day)<1.0) THEN
					SET minutes=minutes+TIMESTAMPDIFF(MINUTE,start_day,end_day);
			ELSE
					WHILE TIMESTAMPDIFF(DAY,next_day,end_day)>=1.0 DO
							IF ((DAYOFWEEK(next_day)=7) OR (DAYOFWEEK(next_day)=1)) THEN
									SET next_day=next_day+INTERVAL 1 DAY;
							ELSE
									SET next_day=next_day+INTERVAL 1 DAY;
									SET minutes=minutes+480.0;
							END IF;
					END WHILE;
					SET minutes=minutes+TIMESTAMPDIFF(MINUTE,next_day,end_day);
					IF ((DAYOFWEEK(start_day)=7) OR (DAYOFWEEK(start_day)=1)) THEN
							SET minutes=minutes+TIMESTAMPDIFF(MINUTE,start_day,CONVERT(CONCAT(SUBSTRING(start_day FROM 1 FOR 10),' 17:30:00'),DATETIME));
					END IF;
			END IF;
			RETURN minutes;
END;

 没考虑中午休息时间
0
0
分享到:
评论

相关推荐

    SQL工作日计算,只排除周末

    ### SQL工作日计算,只排除周末 在数据库管理和数据分析领域,准确地计算两个日期之间的有效工作日数量是一项非常实用的功能,特别是在需要排除周末(通常指周六和周日)的情况下。这种计算方法对于财务报告、项目...

    使用Oracle的SQL函数实现工作日和节假日分组统计.pdf

    使用Oracle的SQL函数实现工作日和节假日分组统计 本文介绍了使用Oracle的SQL函数来实现工作日和节假日的分组统计,通过对工作日和节假日的判断和统计,可以更好地合理调度人力物力资源,制定节假日劳务补贴政策。...

    SQL计算某只股票5日移动平均价和5日交易量加权移动平均价(附SQL语句)

    本文将详细介绍如何通过 SQL 语言来实现对某只股票5日移动平均价和5日交易量加权移动平均价的计算。 #### 一、背景介绍 在股票市场分析中,移动平均线是一种常用的技术指标,它能够帮助投资者识别出股价的趋势方向...

    SQL SERVER定时自动计算小时平均值.docx

    5. **设置执行计划**:根据需要调整计划细节,如工作日、周末是否执行,以及失败时的重试策略。 一旦作业创建并启用,SQL Server代理将按照设定的计划自动执行查询,计算并更新`HOUR_AVG`表中的数据。 请注意,这...

    MySQL计算两日期之间的工作日

    纯SQL语句实现,不需要写存储过程或者函数 在MySQL环境下测试过没有问题

    K means算法在SQL中实现

    #### SQL实现策略 在SQL中实现K-means算法,存在三种主要的方法:直接翻译、优化版本和增量版本。直接翻译法简单地将K-means计算逻辑转化为SQL语句,尽管易于理解,但可能效率较低。优化版本则基于改进的数据组织、...

    SQL语句计算两个日期之间有多少个工作日的方法

    在SQL中,有时我们需要计算两个日期之间的工作日数量,这对于人力资源、项目管理或者数据分析等领域非常常见。本篇文章将介绍如何使用SQL语句来...希望这个函数的示例能够帮助你理解和实现SQL中的日期和工作日计算。

    计算两个时间相差多少年月日的sql算法

    本文将详细介绍如何使用SQL来实现计算两个日期相差多少年、月、日的方法,并通过具体的示例代码来帮助理解这一过程。 ### 一、背景介绍 在实际应用中,我们经常需要知道两个日期之间相差的具体年数、月数和天数,...

    计算工作日(排除节日)

    计算两个日期之间的天数差是基础操作,但这个小程序更进一步,它会考虑到周末(周六和周日)以及用户指定的节假日,这些天数不应计入工作日计算。在实现时,可能需要创建一个包含所有公共假期的列表,然后在计算过程...

    C#实现工作日的计算(排班系统常用).docx

    标题所述的"C#实现工作日的计算"是一个关于在C#编程环境中开发功能,用于计算两个日期间实际工作日数量的程序。这个功能对于排班系统或者任何需要排除周末和法定节假日来计算有效工作时间的场景非常有用。下面将详细...

    计算指定日期到今天的工作日,排除周末,国家法定节假日

    在IT行业中,尤其是在数据分析、报表生成或项目管理等领域,经常需要计算特定日期范围内的工作日,即排除周末和国家法定节假日。这样的需求可以应用于多种场景,例如计算员工的工作天数、项目的进度安排或是金融市场...

    Java 实现将每年的节假日,周末,工作日详情记录至数据库表中

    针对标题"Java实现将每年的节假日,周末,工作日详情记录至数据库表中",我们可以详细讨论以下几个关键知识点: 1. **日期处理库**: Java中,`java.time`包提供了强大的日期时间处理功能,例如`LocalDate`类用于...

    计算2个日期相差天数、去除节假日周末

    在编程领域,尤其是在数据分析、日程管理或者时间序列分析中,计算两个日期之间的差异并考虑工作日排除节假日和周末是一项常见的任务。C++作为一种强大的系统级编程语言,提供了丰富的库来处理日期和时间操作。本篇...

    sql两日速成

    - `NEXT_DAY`:找出下一个工作日。 - `SYSDATE`:获取当前系统日期和时间。 - 数学函数:包括`ABS`、`CEIL`、`FLOOR`、三角函数、指数函数、对数函数、取模函数、幂函数、符号函数、平方根等。 - **字符函数**: ...

    经典SQL脚本大全

    │ │ 2.5.3 工作日处理函数(标准节假日).sql │ │ 2.5.3 工作日处理函数(自定义节假日).sql │ │ 2.5.4 计算工作时间的函数.sql │ │ │ └─其他 │ 交叉表.sql │ 任意两个时间之间的星期几的次数-横.sql │ ...

    SQL21日通(pdf格式)

    《SQL21日通》可能还会涵盖数据库优化、性能监控、索引策略等内容,这些都是数据库管理员和开发者日常工作中不可忽视的部分。通过这21天的学习,读者不仅可以掌握SQL语言的基础,还能了解到如何在实际项目中高效地...

    Oracle的SQL实现日期的功能

    1. **NEXT_DAY(date, weekday)**:找到给定日期之后的第一个指定工作日,例如NEXT_DAY(SYSDATE, 'MONDAY')将返回下一个星期一的日期。 2. **LAST_DAY(date)**:返回给定日期所在月份的最后一天。 3. **MONTHS_...

    asp.net+c#做的计算任意两天的间隔和工作日天数的源码

    在IT行业中,编程是一项至关重要的技能,特别是在Web开发领域。ASP.NET和C#的结合是构建高效、可扩展的Web...同时,对于开发者而言,这提供了一个优化算法和提高效率的机会,特别是处理日期间隔和工作日计算的场景。

    sql server存储过程求一段时间的工作日.docx

    总之,这个SQL Server存储过程`WorkDateInMonth`提供了一个实用的工具,可以帮助我们在办公自动化系统或其他需要统计工作日的应用场景中快速准确地计算日期范围内的工作日数量。通过调用这个存储过程,开发者可以...

Global site tag (gtag.js) - Google Analytics