1 messaggio dal 23 maggio 2007
CIAO A TUTTI BELLI E BRUTTI, HO UN PICCOLO PROBLEMA E CIOE'... STO UTILIZZANDO LA FUNZIONE DATE DIFF CHE MI DA LA POSSIBILITà DI AVERE LA DIFFERENZA TRA DUE INTERVALLI DI DATE, IL PROBLEMA E' CHE NON CONSIDERA I DUE GIORNI FESTIVI LA SETTIMANA IL SABATO E LA DOMENICA, UN PO' C'HO PERSO IL CAPO MA ADESSO NON CE LA FACCIO PIU' MI PRENDE FUOCO  ... SE MI POTETE DARE UNA MANO IN QUALSIASI MODO VI RINGRAZIO
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
Qui trovi un esempio

http://www.mssqlcity.com/FAQ/Devel/get_working_days.htm

Mentre quella che segue è una soluzione proposta in un ng da Steve Kass, MVP di SQL Server, che tiene conto anche di eventuali festività infrasettimanali

=========================
create table Calendar (
d smalldatetime primary key,
c varchar(10) not null
check (c in ('WORKDAY','WEEKEND','HOLIDAY'))
)
go


declare @d smalldatetime
set @d = '20030101'
while @d < '20050101' begin
insert into Calendar values (@d, 'WORKDAY')
set @d = @d + 1
end


update Calendar
set c = 'WEEKEND'
where datepart(weekday,d) = 1
or datepart(weekday,d) = 7


update Calendar
set c = 'HOLIDAY'
where d in
('20030101','20030418','20030526','20030703',
'20030704','20030901','20031127','20031128',
'20031225','20031226')
go


declare @d datetime
set @d = '20030701'
declare @wdaysahead int
set @wdaysahead = 15


select min(d) as Later
from Calendar C1
where d >= @d + 15
and (
select count(*)
from Calendar C2
where C2.d > @d
and C2.d <= C1.d
and C2.c = 'WORKDAY'
) = @wdaysahead
go
=========================

Evita di scrivere in maiuscolo...

Bye

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.