Monday, July 03, 2006

Criação de Trigger para distinguir fim de semana

A uns tempos atras foi defenido um tempo entre X e Y que inclui o mês inteiro, depois foi pedido para saber quanto dias realmente eram uteis, ou seja a ideia era mesmo pegar no sabado e domingo e esqueçer entao vim com este trigger em SQL server, eheh ajuda sempre....

/*CREATE TRIGGER validadata ON dbo.Agenda
FOR INSERT

AS
/*Na inserção dos dias da operação valida os dias Sabado e domingo nao inserindo*/
declare @DTI as datetime,@DTF as datetime, @codigo as int
select @codigo=AG_COD, @DTI=AG_DI,@DTF=AG_DF from inserted

DECLARE @days int, @dp int , @cnt int,@wkends as int,@tempo as datetime
set @wkends=0
set @cnt=0
set @days=datediff(d,@DTI,@DTF)
set @tempo=@DTI
while @cnt <=@days
begin
set @dp=datepart(dw,dateadd(dw,@cnt,@tempo))
/*1 e 7 é sabado e domingo respectivamente*/
if @dp=2 or @dp=3 or @dp=4 or @dp=5 or @dp=6
begin
set @wkends=@wkends+1
end
set @cnt=@cnt+1
End
Post a Comment