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:
1 | exec sp_X_Datas '20160201' , '20160401' |
Abaixo um print de exemplo da execução.
Abaixo o código completo da procedure.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | --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.