相关文章推荐
create FUNCTION [dbo].[f_workday]( @dt_begin datetime, --计算的开始日期 @dt_end datetime --计算的结束日期 )RETURNS int --返回int BEGIN DECLARE @i int, @j int,@s datetime--声明变量 set @i = 0 --赋初始值 set @j = 0 --赋初始值 set @s=@dt_begin --赋值 while @s <= @dt_end begin if datename(weekday,@s) = '星期六' begin set @j= @j+1 else if datename(weekday,@s) = '星期日' begin set @j= @j+1 else if @s in (select Holiday from Holiday where [year] in (select DATENAME(YY,GETDATE()))) begin set @j= @j+1 begin set @i = @i+1 set @s=@s+1 return @i

select Holiday from Holiday where [year] in (select DATENAME(YY,GETDATE()))

这条语句是查询刚刚建的表中今年的节假日

select [dbo].f_workday('2019-10-1','2019-10-10')

如果函数不是内置函数,而是自己创建的函数 。则需要在查询是添加dbo

有道云相关链接

有兴趣的小伙伴可以关注我的公众号哦~ 里面有很多自己平时积攒起来的学习资源,Python,web安全,前端,Java等,都是免费领取的

恕我直言,以下内容不是解决特定问题的方法指导,而是更多的概念验证性内容,展示了 SQL 的可能性。 因此,我们要说的问题是要 计算 工作日 计数,该 工作日 计数定义为不包括 周末 节假日 的天数(在当前实施中,可选地包括在内)。 假设要 计算 的期间存储在与联系人关联的表中。 [tblPeriods] keyPeriodID-自动编号(长),PK keyContactID-Long,FK(tblConta... 问题给定两个日期,求它们之间(包括这两个日期本身)有多少个“工作”日。例如,如果1月10日是星期一,1月11日是星期二,由于这两个日期是典型的 工作日 ,所以两个日期之间的 工作日 数是2。对于这个问题,“ 工作日 ”定义为非周六/周日的日子。解决方案下面的例子 计算 BLAKE 和JONES 的HIREDATE(聘用日期)之间的 工作日 数。要确定两个日期之间的 工作日 数,可以使用基干表,对两个日期(其中 SQL 实现 工作日 处理 函数 -标准 节假日 计算 两个日期相差的工作天数在指定日期上,增加指定工作天数后的日期 计算 两个日期相差的工作天数 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 [d... 项目要求: 需要 计算 两个日期之间的 工作日 天数,包含元旦、五一、十一等 法定 假日。 网上查询很多 SQL 函数 ,最终发现都不太理想,例如国庆放假可能会调休, 周末 也要上班。所以唯一的解决方案是建立一张 工作日 时间表,通过这张表去判断当天是否属于 工作日 。 1、 建一张数据库表,【 工作日 】 上传到CSDN资源了,下载后倒入数据库就可以 https://download.csdn.net/download... 每月到手的工资,到底应该交多少税?私信回复关键词【个税】获取Excel个税模板!对于 工作日 的算法,我一直十分头大。 周末 不能算,临时加班儿不能算,碰上 节假日 还有薛定谔的调休。一个月下来,连自己上了几天班儿都算不清了。前两天,领导丢给我一个严峻的任务:「欸,远歌啊,算一下这个月的实习生的满勤天数,下午给我。」众所周知,满勤天数= 1 个月中所有的「 工作日 天数」。所以,我们只要把 7 月的 工作日 天数算出... --方法一: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 **问题说明:**任给出两个时间(开始时间<结束时间),算出这个两个时间 的 工作日 时间差, 节假日 不算,非工作时间不算(例某公司上午上班时间8:30 - 12:00,下午上班时间:13:30 - 18:00,即只在这个排班时间 间的时间差) **问题应用:**考勤 计算 、流程耗时 计算 工作日 天数 计算 等 最后要的结果是时间差,用自定义 函数 解决 分两种考虑,开始时间和结束时间在同一天和不... 本文摘录了两段 SQL 的小技巧,来解决工作中的一些常用到的问题。主要是为了记录一下第一条,这条 SQL 是用来 计算 两个日期中的 工作日 的方法,从ITPUT那边看来的,很实用的一段 SQL ,而且用的算法很好,值得学习。当然只能剔除掉周六周日,别的 法定 节假日 肯定就不行了。另一个是写的如何打印日历,比较白痴的一段 SQL ,呵呵,顺手摘录一下。 1、用 SQL 直接取 工作日 : bitsCN.comCREATE FUNCTION Time_Span_of_minutes(start_day DATETIME,end_day DATETIME)RETURNS FLOATBEGIN-- 返回按分钟 计算 两段时间的间隔,采用逐日靠近的方法求解,一天按8小时480分钟 计算 周末 不计,不考虑 法定 节假日 。-- 如果起始日期在 周末 ,则 计算 当天时间。DECLARE minutes FLOA...
 
推荐文章