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...