主页 > 知识库 > MSSQL 计算两个日期相差的工作天数的语句

MSSQL 计算两个日期相差的工作天数的语句

热门标签:铁路电话系统 网站排名优化 地方门户网站 AI电销 Linux服务器 百度竞价排名 呼叫中心市场需求 服务外包
复制代码 代码如下:

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(
@dt_begin datetime, --计算的开始日期
@dt_end datetime --计算的结束日期
)RETURNS int
AS
BEGIN
declare @i int
select @i=abs(datediff(dd,@dt_begin,@dt_end))
declare @t table(dt datetime)
if @dt_begin>@dt_end
insert @t select dateadd(dd,number,@dt_end) from master..spt_values
where number=@i and type='P'
else
insert @t select dateadd(dd,number,@dt_begin) from master..spt_values
where number=@i and type='P'
return(select count(*) from @t where (datepart(weekday,dt)+@@datefirst-1)%7 between 1 and 5)
END
GO
select dbo.f_WorkDay('2009-10-10','2009-10-1')
/*
-----------
7
(1 個資料列受到影響)
*/
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(
@dt_begin datetime, --计算的开始日期
@dt_end datetime --计算的结束日期
)RETURNS int
AS
BEGIN
DECLARE @workday int,@i int,@bz bit,@dt datetime
set @workday=0
IF @dt_begin>@dt_end
SELECT @bz=1,@dt=@dt_begin,@dt_begin=@dt_end,@dt_end=@dt
ELSE
SET @bz=0
WHILE @dt_begin=@dt_end
BEGIN
SELECT @workday=CASE
WHEN (@@DATEFIRST+DATEPART(Weekday,@dt_begin)-1)%7 BETWEEN 1 AND 5
THEN @workday+1 ELSE @workday END,
@dt_begin=@dt_begin+1
END
RETURN(CASE WHEN @bz=1 THEN -@workday ELSE @workday END)
END
GO
select dbo.f_WorkDay('2009-10-10','2009-10-1')
/*
-----------
-7
*/
您可能感兴趣的文章:
  • SQL Server 日期函数CAST 和 CONVERT 以及在业务中的使用介绍
  • SQLserver中用convert函数转换日期格式的方法
  • SQL Server 日期相关资料详细介绍
  • sqlserver获取当前日期的最大时间值
  • sqlserver中如何查询出连续日期记录的代码
  • sql 查询本年、本月、本日记录的语句,附SQL日期函数
  • Sqlserver 常用日期时间函数
  • 根据日期知道当天是星期几的手动计算方法
  • 按日期选择最晚日期与最早日期对应的数的差值
  • SQL Server自动生成日期加数字的序列号
  • SQL 返回期间内的所有日期
  • 数据库 日期加减处理
  • sql语句中如何将datetime格式的日期转换为yy-mm-dd格式
  • 在SQL中使用convert函数进行日期的查询的代码
  • SQL Server日期计算
  • SQL Server各种日期计算方法(收藏)
  • SqlServer中的日期与时间函数

标签:兰州 崇左 湘潭 衡水 黄山 铜川 仙桃 湖南

巨人网络通讯声明:本文标题《MSSQL 计算两个日期相差的工作天数的语句》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266