統計指定時間段內的週未(非周未)天數

2022-03-22 08:26:04 字數 1640 閱讀 1901

declare

@start

datetime,

@end

datetime,

@zoomoutstart

datetime,--

放大指數

@zoomoutend

datetime,

@zoomoutstartspan

int,

@zoomoutendspan

int,--

@zoomouttimespan

int,--

放大的時間距離

@zoomoutweekcount

int,--

時間段內的週未天數

@worktime

int--

時間段內的工作天數

set@start='

2011-2-5'--

起始時間

set@end

=dateadd(ms,-

2, dateadd(dd,30,@start))--

結束時間

set@zoomoutstartspan

=datepart(weekday,@start)-

1set

@zoomoutendspan=7

-datepart(weekday,@end)

set@zoomoutstart

=dateadd(dd,-1*

@zoomoutstartspan,@start)

set@zoomoutend

=dateadd(dd,@zoomoutendspan,@end)

set@zoomouttimespan

=datediff(dd,@zoomoutstart,@zoomoutend)+

1set

@zoomoutweekcount

=@zoomouttimespan/7

*2--時間放大後的週未天數

set@worktime

=@zoomouttimespan/7

*5--工作時間

if@zoomoutstartspan

>

0begin

set@zoomoutweekcount

=@zoomoutweekcount-1

set@worktime

=@worktime

-@zoomoutstartspan+1

endif

@zoomoutendspan

>

0begin

set@zoomoutweekcount

=@zoomoutweekcount-1

set@worktime

=@worktime

-@zoomoutendspan+1

endif

@zoomoutweekcount

<

0set

@zoomoutweekcount=0

select

@start,@end,

@zoomoutstart,@zoomoutend,

@zoomoutstartspan,@zoomoutendspan,

@zoomouttimespan,

@zoomoutweekcount,@worktime

Oracle統計每天指定時間段內的數量

比如我要統計每天晚上8 00到晚上12 00的訪問量,重點其實就是日期之間的格式轉換和拼接,即to date和to char的靈活應用 select to char t.accesstime,yyyy mm dd 訪問量,to char t.accesstime,yyyy mm dd 時間 from...

Oracle 獲取時間段內的所有周

orcle獲取時間段內的所有周 包括周一日期,週日日期,該年的第幾周 首先要獲取一段時間內的所有日期,然後再獲取時間段內的每個周一,週日,第幾周。例如下面 下面的2017 03 02為開始日期,2017 05 02為結束日期 select trunc to date 2017 03 02 yyyy ...

oralce sql 建立指定時間段內的日曆資訊

create table create table temp calendar month varchar2 6 w 7 varchar2 2 w 1 varchar2 2 w 2 varchar2 2 w 3 varchar2 2 w 4 varchar2 2 w 5 varchar2 2 w 6...