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

sql如何計算節假日

發布時間: 2022-10-21 14:12:39

『壹』 用sql怎麼計算出員工請假的時間,扣除國際法定節假日和周六周日。

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

『貳』 sql中如何計算得到一段時間內指定日期中有多少個休息日和節假日

這個問題的前題是需要建立一個表(存放休息日和節假日) holidays,裡面存放了所有休息日等
SQL中提供了一些日期計算函數如dateadd,可對日期進行遞增操作。
基本代碼如下:
declare @startdate datetime='2015-9-10'
declare @enddate datetime='2015-10-10'
declare @days int=0
set @startdate=dateadd(day,@startdate,1) --給開始日期加1天
while(@startdate<@enddate) --如果小於結束日期,一直循環處理下面
begin
IF EXISTS (SELECT * FROM holidays WHERE holiday=@startdate) --如果假日表中找到對應日期,則假日數加1
set @days=@days+1

set @startdate=dateadd(day,@startdate,1) --給開始日期加1天
end

select @days --總天數。

『叄』 用SQL計算年假的問題

select 員工ID,員工工號,員工姓名,入職日期,
case when DATEDIFF(mm,入職日期,getdate())<=3 then 0
when DATEDIFF(mm,入職日期,'2014-08-01') then a.剩於年假+DATEDIFF(mm,'2014-08-01',getdate())
else DATEDIFF(mm,入職日期,getdate() end as 可休年假

from 人事表 a
left join 截止年假剩餘表 b on a.員工ID=b.員工ID

『肆』 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 count(distinct day) from tb
where day between day1 and day2 --找出兩天內的日子
and weekday(day)<5 --5代表周六,6代表周日,剔除掉

『陸』 用sql語句可以做出判斷節假日等的嗎

明確不可以的,解決辦法:
建立一張表,來存儲每年節假日,業務處理的時候來讀取這張表再做比對
我就是這樣解決的。每年年底只用維護一次這張表即可

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

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

『捌』 sql server 如何判斷節假日

有一張表存放當年的節假日
用的時候用日期與該表關聯,關聯上的就是節假日

『玖』 SQL怎麼用函數計算年假

沒有函數,自己建一個函數演算法,入職時間+365天得出 新的日期,把這個日期格式化,取年份+1,再用TO_DATE日期格式化為年初1月1號,就是他應該得到年假的時間。

『拾』 用SQL查找一個月內休假的天數和

SELECT CompanyID,事假=SUM(CASE WHEN A='事假' THEN vacationDays ELSE 0 END),

病假=COUNT(CASE WHEN A='病假' THEN vacationDays ELSE 0 END)
FROM 表
GROUP BY CompanyID