Olá pessoal…
Hoje vou mostrar uma procedure que desenvolvi para SQL Server que retorna o intervalo entre duas datas.
Para utilizar essa procedure, basta executá-la e passar as duas datas na frente, a inicial e a final, por exemplo:
exec sp_X_Datas '20160201', '20160401'
Abaixo um print de exemplo da execução.
Abaixo o código completo da procedure.
--Exclui procedure IF OBJECT_ID('dbo.sp_X_Datas', 'P') IS NOT NULL DROP PROCEDURE [dbo].[sp_X_Datas] GO --Cria a procedure CREATE PROCEDURE sp_X_Datas ( @DataIni Varchar( 08 ), @DataFin VARCHAR( 08 ) ) AS BEGIN DECLARE @DtAuxIni DATETIME DECLARE @DtAuxAtu DATETIME DECLARE @DtAuxFin DATETIME DECLARE @TabDados TABLE (DATA_AUX DATETIME, DATA_CHAR VARCHAR(10)) --Converte as datas SET @DtAuxIni = CONVERT(Datetime, @DataIni, 120) SET @DtAuxFin = CONVERT(Datetime, @DataFin, 120) SET @DtAuxAtu = @DtAuxIni --Enquanto a data Atual for menor que a data Final WHILE (@DtAuxAtu <= @DtAuxFin) BEGIN INSERT INTO @TabDados VALUES (@DtAuxAtu, REPLACE(LEFT(CONVERT(VARCHAR, @DtAuxAtu, 120), 10), '-', '')) Set @DtAuxAtu = DATEADD(Day, 1, @DtAuxAtu) END --Seleciona todos os dados da tabela SELECT * FROM @TabDados END GO
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Dan tudo bem
Você teria uma função que ao informar o número da Semana, me retorne a data de inicio da Semana e a Data Fim dessa semana ? Por exemplo, ao informar a semana 44, me traga as datas 25/10/2020 e 31/10/2020.
Obrigado
Wagner Neves
Boa tarde, tudo sim e você?
Você pode adaptar essa rotina, incluindo uma coluna numérica, e no fim dela, se for passado por parâmetro, no seu SELECT, você filtra o número da semana.