當前位置:首頁 » 編程語言 » sql計算周末
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql計算周末

發布時間: 2022-03-31 23:15:54

『壹』 sql中計算周六,周日天數

先建立函數,再執行下面的語句

CREATE FUNCTION getday --
(@datestart datetime,--啟始日期
@dateend datetime, --結束日期
@DW VARCHAR(6)) --星期幾
RETURNS INT
AS
BEGIN
DECLARE @DAYCOUNT int
SET @DAYCOUNT=0
while @datestart<=@dateend
begin
if datename(dw,@datestart)=@DW
set @DAYCOUNT=@DAYCOUNT+1
SET @DATESTART=DATEADD(DAY,1,@DATESTART)

end
RETURN(@DAYCOUNT)
END

GO

SELECT DBO.GETDAY('2008-01-01','2008-12-31','星期六') AS SATDAY,
DBO.GETDAY('2008-01-01','2008-12-31','星期日') AS SUNDAY

『貳』 SQL中可以提取周末日期的函數

select*
fromthetable
wheredatepart(weekday,thedatefield)in(1,7)

『叄』 SQL語句怎麼查周六周天

比如,2010年07月31日是星期六,你就拿這個日期,減去你要判斷的日期,然後在看看結果是否能被7整除就可以了。這樣寫能查出所有周六的日期:(假設表名為: 表1,有日期欄位) select 日期 from 表1 where ( {^2010-07-31} - 日期 )%7=0

『肆』 何使用sql語句計算工作日(除去周六周日以及

networkdays(start_date,end_date,holidays)函數是專門用於計算兩個日期值之間完整的工作日數值。這個工作日數值將不包括雙休日和專門指定的其他各種假期。
點擊「工具」菜單中的「載入宏」,找到「分析工具庫」,給它一個小勾,再「確定」。原來,這兩個函數是嵌於「分析工具庫」這個載入宏中的excel擴展函數,而excel在默認狀態下是不載入這個載入宏的networkdays(start_date,end_date,holidays)函數是專門用於計算兩個日期值之間完整的工作日數值。這個工作日數值將不包括雙休日和專門指定的其他各種假期。
點擊「工具」菜單中的「載入宏」,找到「分析工具庫」,給它一個小勾,再「確定」。原來,這兩個函數是嵌於「分析工具庫」這個載入宏中的excel擴展函數,而excel在默認狀態下是不載入這個載入宏的

『伍』 在sql語句中如何判斷周六日

周六是
datepart(week,getdate())=6
周日是
datepart(week,getdate())=7

select case when datepart(week,getdate()) in (6,7) then '休息日' else '工作日' end

『陸』 如何使用sql語句計算工作日(除去周六周日以及法定節假日)

最多隻能除去周六周日,法定假日是自己國家規定的,需要單獨處理的親。

『柒』 sql計算上周日的日期怎麼寫

select trunc(next_day(sysdate,'sunday')-7) from al;

『捌』 SQL統計雙休日

select Inspect_name,
A=sum(A), B=sum(B),雙休日=sum(case when 雙休日 >= 2 then 1 else 0 end)
from
(
select weekly,Inspect_name,
A=sum(A), B=sum(B),雙休日=sum(case when 雙休日>119 then 1 else 0 end)
from
(
select weekly, Inspect_name, vdatetime2,
sum(case when rank= 'A' then 1 else 0 end) A,
sum(case when rank= 'B' then 1 else 0 end) B,
SUM(CASE WHEN xxx = '休' THEN vtime ELSE 0 END) AS 雙休日
from
(
select datepart(wk,(case when convert(varchar(16),vdatetime2,120) between convert(varchar(10),vdatetime2,120)+' 00:00' and convert(varchar(10),vdatetime2,120)+' 05:01' then vdatetime2 -1
else vdatetime2 end)) as weekly,Inspect_name, rank,
(case when convert(varchar(16),vdatetime2,120) between convert(varchar(10),vdatetime2,120)+' 00:00' and convert(varchar(10),vdatetime2,120)+' 05:01' then convert(varchar(10),vdatetime2 -1,120)
else convert(varchar(10),vdatetime2,120) end) as vdatetime2,
( CASE WHEN(datepart(dw, vdatetime2)>=6 AND CONVERT(VARCHAR(8),vdatetime2,108)>'23:00') OR (datepart(dw, vdatetime2)=7 )or (datepart(dw, vdatetime2)=1 ) OR(datepart(dw, vdatetime2)=2 AND CONVERT(VARCHAR(8),vdatetime2,108) <'04:59')THEN '休' ELSE '不休' END) as 'xxx',
vtime
from tb
) t
group by weekly,Inspect_name, vdatetime2
) Tbl
group by weekly,Inspect_name
) tbl1
group by Inspect_name
DATEPART(ww,DATE) 函數計算的周次講解:

這個函數是以周日為每個周次的第一天,所以你要實現周一為每周的開始必須這樣書寫才能實現
DATEPART(ww,DATE-1)

『玖』 sql 請假天數的計算問題 排除節假日和周末

selecta.id,a.姓名,a.狀態,開始日期,結束日期,
max(結束日期)-max(開始日期)+1-count(b.workdate)as請假天數
froma
leftjoinbonb.statusin('節假日','周末')
andb.workdatebetweena.開始日期anda.結束日期
groupbya.id,a.姓名,a.狀態,開始日期,結束日期