———–擷取非周末時間—————

來源:互聯網
上載者:User

----老大的

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

 

----------溝溝的

 

create   function   fn_test(@begin   datetime,@end   datetime)
returns   int
As
BEGIN
declare   @i   int,@j   int
set   @i=0
set   @j=0
if   @end> @begin
  begin
              while   dateadd(d,@i,@begin) <=@end
                        begin
                                    if   datepart(weekday,dateadd(d,@i,@begin))   not   in(1,7)
                                              set   @j=@j+1
                                    set   @i=@i+1
                          end
    end
 
return   @j

END

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.