sql İkitariharaındakiçalışmaünlerinibulma

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql İkitariharaındakiçalışmaünlerinibulma相关的知识,希望对你有一定的参考价值。

CREATE FUNCTION dbo.GetWorkingDays
( @StartDate datetime,
@EndDate datetime )
RETURNS INT
AS
BEGIN
DECLARE @WorkDays int, @FirstPart int
DECLARE @FirstNum int, @TotalDays int
DECLARE @LastNum int, @LastPart int
IF (DATEDIFF(day, @StartDate, @EndDate) < 2)
BEGIN
RETURN ( 0 )
END
SELECT
@TotalDays = DATEDIFF(day, @StartDate, @EndDate) - 1,
@FirstPart = CASE DATENAME(weekday, @StartDate)
WHEN 'Sunday' THEN 6
WHEN 'Monday' THEN 5
WHEN 'Tuesday' THEN 4
WHEN 'Wednesday' THEN 3
WHEN 'Thursday' THEN 2
WHEN 'Friday' THEN 1
WHEN 'Saturday' THEN 0
END,
@FirstNum = CASE DATENAME(weekday, @StartDate)
WHEN 'Sunday' THEN 5
WHEN 'Monday' THEN 4
WHEN 'Tuesday' THEN 3
WHEN 'Wednesday' THEN 2
WHEN 'Thursday' THEN 1
WHEN 'Friday' THEN 0
WHEN 'Saturday' THEN 0
END
IF (@TotalDays < @FirstPart)
BEGIN
SELECT @WorkDays = @TotalDays
END
ELSE
BEGIN
SELECT @WorkDays = (@TotalDays - @FirstPart) / 7
SELECT @LastPart = (@TotalDays - @FirstPart) % 7
SELECT @LastNum = CASE
WHEN (@LastPart < 7) AND (@LastPart > 0) THEN @LastPart - 1
ELSE 0
END
SELECT @WorkDays = @WorkDays * 5 + @FirstNum + @LastNum
END
RETURN ( @WorkDays )
END
GO

--Kullanımı ;

SELECT dbo.GetWorkingDays ('2012-01-01', '2012-12-01')

以上是关于sql İkitariharaındakiçalışmaünlerinibulma的主要内容,如果未能解决你的问题,请参考以下文章

sql VeritabanıobjelerinindeğişikliktarihçesinitutmakiçinDDLoluşturmak

csharp İkiboyutlu10×10elamanlıbirdizitanımlayınızvediziye0-255arasındarastgeledeğeratandıktanso

text parıltıefeği

json TwitterVideolarıİlelakalıAcayipFikirlerim Var :)

html açılışta灯箱göstermeişi

sql 自动增量numarayıresetleme