zoukankan      html  css  js  c++  java
  • 计算两个日期之间的工作日

    Go

    --创建函数(CSDN fredrickhu(小F)提供)

    CREATE FUNCTION f_WorkDay

    (

        @dt_begin   datetime,     --计算的开始日期

        @dt_end     datetime      --计算的结束日期

    )RETURNS   int

    AS

    BEGIN

        DECLARE @workday int,@i int,@bz bit,@dt datetime

        IF @dt_begin> @dt_end

           SELECT @bz=1,@dt=@dt_begin,@dt_begin=@dt_end,@dt_end=@dt

        ELSE

           SET @bz=0

        SELECT @i=DATEDIFF(Day,@dt_begin,@dt_end)+1, @workday=@i/7*5,

               @dt_begin=DATEADD(Day,@i/7*7,@dt_begin)

        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('2011-02-22','2011-03-14') as '工作日'

     

    --运行结果

    /*

    工作日

    -----------

    15

    */

  • 相关阅读:
    寒假学习进度15
    寒假学习进度14
    寒假学习进度13
    Markdown使用笔记
    MVC
    阅读笔记大型网站技术架构01
    周总结1大数据采集技术与应用(徳拓)五次实验总结
    阅读笔记架构漫谈03
    质量属性易用性分析
    阅读笔记架构漫谈02
  • 原文地址:https://www.cnblogs.com/accumulater/p/6244593.html
Copyright © 2011-2022 走看看