Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

cintiadel

[Resolvido] procedure ou function

Recommended Posts

preciso jogar esse código dentro de uma procedure ou function, alguem pode me ajudar:

set dateformat YMD
go

declare @mes varchar(2)
set @mes = datepart(month, getdate())+1
declare @data datetime

select 
@data = (convert(varchar(4),datepart(year,getdate()))+'-'+@mes+'-'+'01')
select @data = dateadd(day,4,@data)

if DatePart(WeekDay, @data) in (1) -- alterado
begin
	select @data = Dateadd(day,2,@data)
end
else
if DatePart(WeekDay, @data) in (7) 
begin
	select @data = Dateadd(day,2,@data)
end
else

if DatePart(WeekDay, @data) = 2
	begin
	select @data = Dateadd(day,2,@data)
	end
else	
if DatePart(WeekDay, @data) = 3
	begin
	select @data = Dateadd(day,2,@data)
	end
else
if DatePart(WeekDay, @data) = 4  
	begin
	select @data = Dateadd(day,2,@data)
	end
else
if DatePart(WeekDay, @data) = 5  -- alterado
	begin
	select @data = Dateadd(day,1,@data)
	end
else
if DatePart(WeekDay, @data) = 6  -- alterado
	begin
	select @data = Dateadd(day,0,@data)
	end

select @data

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que seria isto que você precisaria fazer...

 

--DESCOMENTAR PARA TESTE
--DECLARE @DATA DATETIME
--SET @DATA = GETDATE()
--
--EXEC STP_RETORNA_DATA @DATA

ALTER PROCEDURE STP_RETORNA_DATA @DATA DATETIME
AS
BEGIN
	SET NOCOUNT ON 
	SET DATEFORMAT YMD

	DECLARE @MES VARCHAR(2)
	SET @MES = DATEPART(MONTH, @DATA)+1

	SELECT @DATA = (CONVERT(VARCHAR(4),DATEPART(YEAR,@DATA))+'-'+@MES+'-'+'01')
	SELECT @DATA = DATEADD(DAY,4,@DATA)

	IF DATEPART(WEEKDAY, @DATA) IN (1) -- ALTERADO
	BEGIN
		SELECT @DATA = DATEADD(DAY,2,@DATA)
	END
	ELSE
	IF DATEPART(WEEKDAY, @DATA) IN (7)
	BEGIN
		SELECT @DATA = DATEADD(DAY,2,@DATA)
	END
	ELSE

	IF DATEPART(WEEKDAY, @DATA) = 2
		BEGIN
		SELECT @DATA = DATEADD(DAY,2,@DATA)
		END
	ELSE	
	IF DATEPART(WEEKDAY, @DATA) = 3
		BEGIN
		SELECT @DATA = DATEADD(DAY,2,@DATA)
		END
	ELSE
	IF DATEPART(WEEKDAY, @DATA) = 4  
		BEGIN
		SELECT @DATA = DATEADD(DAY,2,@DATA)
		END
	ELSE
	IF DATEPART(WEEKDAY, @DATA) = 5  -- ALTERADO
		BEGIN
		SELECT @DATA = DATEADD(DAY,1,@DATA)
		END
	ELSE
	IF DATEPART(WEEKDAY, @DATA) = 6  -- ALTERADO
		BEGIN
		SELECT @DATA = DATEADD(DAY,0,@DATA)
		END

	SELECT @DATA AS DATA
END

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.