-1
開始日、つまり開始日19/05/2017、終了日25/05/2017があります。私は週末、金曜日と土曜日を含まずにそれらの間で計算された時間を取得したい。 例:数値を計算するSQLの週末を除く日付範囲からの時間
7日間※7 = 24 = 168時間 金曜日を除く5日間、土曜日は120時間です。
別のクエリで使用できる関数はありますか?
開始日、つまり開始日19/05/2017、終了日25/05/2017があります。私は週末、金曜日と土曜日を含まずにそれらの間で計算された時間を取得したい。 例:数値を計算するSQLの週末を除く日付範囲からの時間
7日間※7 = 24 = 168時間 金曜日を除く5日間、土曜日は120時間です。
別のクエリで使用できる関数はありますか?
create function dbo.GetHoursWithoutWeekends (@date1 date, @date2 date)
returns int
as
begin
declare @hours int
set @hours = 24 * (DATEDIFF(day, @date1, @date2) + 1 - (
select
count(DATEADD(day, t.Rbr - 1, @date1)) as WeekEndCount
from (
select
ROW_NUMBER() over (order by sc1.name) as Rbr
from sys.syscolumns sc1
cross join sys.syscolumns sc2
) t
where DATEADD(day, t.Rbr - 1, @date1) between @date1 and @date2
and DATEPART(weekday, DATEADD(day, t.Rbr - 1, @date1)) in (5, 6)
));
return @hours;
end
GO
set datefirst 1
select dbo.GetHoursWithoutWeekends ('20170519', '20170525')
ありがとう、それは完璧に動作します – Javaid
どのrdbmsを使用していますか? – SqlZim
重複:[2つの日付間の就業日数をカウントする](https://stackoverflow.com/questions/252519/count-work-days-between-two-dates) – streetturtle
Sql server 2012 – Javaid