sql计算工作日函数

工作日时间差/考勤计算(SQL 自定义函数) **问题说明:**任给出两个时间(开始时间<结束时间),算出这个两个时间 的工作日时间差,节假日不算,非工作时间不算(例某公司上午上班时间8:30 - 12:00,下午上班时间:13:30 - 18:00,即只在这个排班时间 间的时间差) **问题应用:**考勤计算、流程耗时计算、工作日天数计算等 解题思路 最后要的结果是时间差,用自定义函数解决 分两种考虑,开始时间和结束时间在同一天和不... 阅读详情

这个算法还不够严谨,没有考虑到周六、日调换假期等细节的情况。

1、建节假日表

 

CREATE TABLE [Holiday] (
 [Id] [int] IDENTITY (1, 1) NOT NULL ,
 [Name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [BeginDate] [datetime] NOT NULL ,
 [EndDate] [datetime] NOT NULL ,
 [AddUser] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [AddTime] [datetime] NOT NULL ,
 CONSTRAINT [PK_Holiday] PRIMARY KEY  CLUSTERED
 (
  [Id]
 )  ON [PRIMARY]
) ON [PRIMARY]
GO


2、计算工作日函数

 

CREATE function [dbo].[WorkDay]
(
@beginday   datetime,
@endday   datetime
)

returns int
 AS
begin
  --set   datefirst   1
  declare  @caldays   int  
  declare  @id   int
  select   @caldays=0
  
  while  DATEDIFF(d, @beginday,@endday)>0     
      begin
          select   @beginday=dateadd(day,1,@beginday)   
          if  datepart(dw,@beginday)>1 and datepart(dw,@beginday)<7
   begin
    SELECT @id=count(*) from holiday where @beginday between begindate and DATEADD(s,-1,DATEADD(day,1,enddate))
    if(@id=0)   
     select   @caldays=@caldays+1
   end            
      end  
return   @caldays
end

3、推算指定日期前N个工作日的日期函数

 

CREATE function [dbo].[BeginDate]
(
@workday  int   ,
@endday   datetime
)

returns datetime
 AS
begin 
  declare  @beginday   datetime  
  declare  @id   int  
  select @beginday=@endday  
  while  DATEDIFF(d, @beginday,@endday)<@workday     
      begin
          select   @beginday=dateadd(day,-1,@beginday)  
          if  datepart(dw,@beginday)>1 and datepart(dw,@beginday)<7
   begin
    SELECT @id=count(*) from holiday where @beginday between begindate and DATEADD(s,-1,DATEADD(day,1,enddate))
    if(@id>0)   
     select   @workday=@workday+1
   end
          else
   begin
       select   @workday=@workday+1
   end          
      end
   if(datepart(dw,@beginday)=2)
    begin
  select   @beginday=dateadd(day,-2,@beginday)
 end   
return   @beginday
end

SQL Server 自定义函数 DateAddWorkdays 按工作日加日数 碰到一个需要按工作日向后计算天数的帖子,写了个算多少个工作日之后的日期函数。 阅读详情

相关推荐

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

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

SQL计算工作日

本文摘录了两段SQL的小技巧,来解决工作中的一些常用到的问题。主要是为了记录一下第一条,这条SQL是用来计算两个日期中的工作日的方法,从ITPUT那边看来的,很实用的一段SQL,而且用的算法很好,值得学习。当然只能剔除掉周六周日,别的法定节假日肯定就不行了。另一个是写的如何打印日历,比较白痴的一段SQL,呵呵,顺手摘录一下。 1、用SQL直接取工作日: with

7880

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

本文的主要内容是用SQL语言计算两个日期间有多少个工作日,需要的朋友可以参考下

如何:计算工作日-纯SQL方法。

恕我直言,以下内容不是解决特定问题的方法指导,而是更多的概念验证性内容,展示了SQL的可能性。 因此,我们要说的问题是要计算工作日计数,该工作日计数定义为不包括周末和节假日的天数(在当前实施中,可选地包括在内)。 假设要计算的期间存储在与联系人关联的表中。 [tblPeriods] keyPeriodID-自动编号(长),PK keyContactID-Long,FK(tblConta...

IT与开发人员的地盘 2391

保姆级教程:在Ubuntu 22.04上用Python3.10和pysoem搞定EtherCAT电机回零与位置控制

本文提供在Ubuntu 22.04上使用Python3.10和pysoem实现EtherCAT电机回零与位置控制的详细指南。涵盖环境搭建、权限配置、EtherCAT主站架构解析、CiA402协议核心机制及工业级精度控制实现,帮助开发者快速掌握Python在工业自动化中的应用。

weixin_30952535的博客 329

浙政钉(专有钉钉)门户免登(超详细)

钉钉家族 介绍浙政钉门户免登之前,首先搞清楚几个软件的关系,软件分别是:钉钉,专有钉钉,浙政钉 钉钉 是阿里巴巴集团专为中小企业打造的沟通和协同的多端平台。 专有钉钉 原名 政务钉钉,有更开放的设计能力、集成能力、更结构化协同产品、更定制化开发平台。支持专有化部署,数据落本地,更安全、客户可对该产品持牌运营、结构化编排,协助构建本地应用中心、提供移动应用全面安全保障体系。 浙政钉 为规范浙政钉整体架构体系,按照统分结合原则,由省政府办公厅统一设计整体工作界面和系统框架,统筹指导全省统建应用建设,各单

一缕南风的博客 2万+

sql 计算工作日数

四、 第三方获取假期接口。

张洪财的专栏 1260

SLAM轨迹评估神器evo实战:从GPS到TUM格式的完整转换指南(附Python代码)

本文详细介绍了如何使用evo工具将GPS数据转换为TUM格式,以便进行SLAM轨迹评估。通过Python代码实现GPS到笛卡尔坐标的精确转换,并提供了完整的处理流程和实战案例,帮助开发者轻松完成从原始GPS数据到精确轨迹评估的全过程。特别适用于ORB-SLAM等视觉SLAM算法的性能验证。

weixin_29074295的博客 293

SQL数据库中工作日如何计算(转)

--方法一:create function f_workday(    @dt_begin datetime,--起始时间    @dt_end datetime   --结束时间)returns int   as    begin     declare @dt datetime,   @re int,   @i int     if @dt_begin > @dt_end        sel

BlackAngel的专栏 2276

电流采样(分流器与霍尔传感器)

霍尔效应霍尔效应是磁电效应的一种,这一现象是霍尔(A.H.Hall,1855—1938)于1879年在研究金属的导电机构时发现的。霍尔效应是研究半导体材料性能的基本方法。通过霍尔效应实验测定的霍尔系数,能够判断半导体材料的导电类型、载流子浓度及载流子迁移率等重要参数。简单原理如图1所示,半导体薄片两端通以控制电流I,垂直方向施加磁感应强度为B的匀强磁场,d为半导体材料的厚度,k为霍尔常数,它与半导体材质有关,则在垂直于电流和磁场的方向上,将产生电势差为UH的霍尔电压,它们之间的关系为。霍尔元件。

weixin_48867130的博客 1万+

上线之前多一道闸:业务审核系统的接入定义、双轨状态机与可靠生效闭环

运营后台“保存即生效”,让价格、库存、人群等配置每次修改都相当于一次无评审的上线。本文以至尊会员降价活动为例,系统拆解业务审核系统:用带业务语义的操作编码、规则化审核人与候选人快照、完整的生效回调契约做好接入定义;把业务改造为提交待生效,以不可变快照、字段级差异和唯一约束加幂等号防误配防重复;用审批轨与执行轨双轨状态机、链路式重新提交和以事件为准的审核链路理清状态;最后以发件箱、幂等键、超时先查后试、乐观锁与对账闭合生效环节,并结合两个可运行的Java程序,给出五种生效策略的事故率实测对比。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 6万+

mysql计算工作日函数_SQL实现工作日计算_MySQL

bitsCN.comCREATE FUNCTION Time_Span_of_minutes(start_day DATETIME,end_day DATETIME)RETURNS FLOATBEGIN-- 返回按分钟计算两段时间的间隔,采用逐日靠近的方法求解,一天按8小时480分钟计算,周末不计,不考虑法定节假日。-- 如果起始日期在周末,则计算当天时间。DECLARE minutes FLOA...

weixin_42365539的博客 4746

详解舵机的基本原理以及控制方法

文章目录什么是舵机?伺服控制硬件连接舵机规格SG90MG90SMG996R总结 什么是舵机? 舵机是伺服电机的一种,伺服电机就是带有反馈环节的电机,我们可以通过伺服电机进行精确的位置控制或者输出较高的扭矩; 舵机也叫也叫 RC 伺服器,通常用于机器人项目,也可以在遥控汽车,飞机等航模中找到它们。 类似舵机这样的伺服系统通常由小型电动机,电位计,嵌入式控制系统和变速箱组成。 电机输出轴的位置由内部电位计不断采样测量,并与微控制器(例如STM32,Arduino)设置的目标位置进行比较; 根据相应的偏差,控制

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 4万+

SQL函数计算两个日期间的工作日天数

返回指定开始、结束日期间的工作日天数;开始日期须小于结束日期,否则返回 0 /******************************************************************************** 功能:返回指定开始、结束日期间的工作日天数;开始日期须小于结束日期,否则返回 0** 作者:Danny,Li** 日期:2010-12-0...

agfc41358的博客 1837

【数字IC刷题】华为海思数字IC笔试题(1)详细解析版

【数字IC刷题】华为海思数字IC笔试题(1)详细解析版

MoorePlus的博客 4219

《YOLO11魔术师专栏》专栏介绍 & 专栏目录

【原创自研模块】【多组合点优化】【注意力机制】【主干篇】【neck优化】【卷积魔改】 【block&多尺度融合结合】【损失&IOU优化】【上下采样优化】【小目标性能提升】【前沿论文分享】【训练实战篇】

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1万+

sql server:自定義計算固定工作日,雙休日函數

---sql server declare @date datetime set @date='2012-02-03'--getdate() --本月第一天 SELECT DATEADD(mm, DATEDIFF(mm,0,@date), 0) --本月最后一天 SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,@date)+1, 0))

涂聚文的专栏 1165

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

MS SQL2005 中标量值函数的灵活运用之工作日计算篇

 -----标准节假日         if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N[dbo].[f_WorkDay])   and   xtype   in   (NFN,   NIF,   NTF))     drop   function   [dbo]

1791

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

SQL Server 2005 计算工作日函数

由于工作需要,在SQL Server 2005 下面写了一个计算两个日期之间相差工作日的函数。函数是以一个星期5天工作日计算,没有剔除五一国庆等假期。代码如下: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author:Si...

weixin_30646505的博客 217

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

SQL计算两个日期之间的工作日天数,去除法定节假日和周末

项目要求:需要计算两个日期之间的工作日天数,包含元旦、五一、十一等法定假日。 网上查询很多SQL函数,最终发现都不太理想,例如国庆放假可能会调休,周末也要上班。所以唯一的解决方案是建立一张工作日时间表,通过这张表去判断当天是否属于工作日。 1、新建一张数据库表,【工作日】 上传到优快云资源了,下载后倒入数据库就可以 https://download.youkuaiyun.com/download...

泽辉的技术博客 2万+

9.工作日处理函数(标准节假日)

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_WorkDay]') and xtype in (N'FN', N'IF', N'TF')) drop function [dbo].[f_WorkDay] GO --计算两个日期相差的工作天数 CREATE FUNCTION f_WorkDay( @...

huang714的专栏 640

[转载] SQL Server 标准工作日、自定义工作日计算

转载来源:http://topic.youkuaiyun.com/t/20060317/14/4621378.html -----标准节假日 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_WorkDay]') and xtype i...

diancidiao0365的博客 190

SQL Server 去除节假日天数,获取实际工作日天数

自定义节假日日历,去除节假日天数,获取实际工作日天数,最小0.5天。

qq_35681991的博客 3198
上一篇: 在win2003中安装 Mustek 1200 CU 扫描仪
下一篇: ajax中的timer和updateprocess在页面加载时的运用
goding
博客等级 码龄23年 20粉丝 38原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值