Ir para conteúdo
Fórum Script Brasil
  • 0

Usando WHILE para gerar intervalo de datas - massa de testes


jothaz

Pergunta

DECLARE  @TMP TABLE (
    DATA DATETIME NULL
)

DECLARE @DIA INT,
        @QTDE_MES INT,
        @MES_INI INT,
        @ANO_INI INT,
        
        @DT_AUX VARCHAR(10),
        @AUX INT


SELECT  @DIA         = 10,     --Define o Dia inicial
        @QTDE_MES     = 12,     --Define a quantidade de meses à ser gerado
        @MES_INI     = 6,      --Define o Mês inicial
        @ANO_INI     = 2008    --Define Ano inicial

SELECT @AUX = 1

WHILE    @AUX <= @QTDE_MES 
BEGIN
    --
    --Monta data
    SELECT @DT_AUX = CONVERT(CHAR(4),@ANO_INI) + '/' + CONVERT(CHAR(2),@MES_INI) + '/' + CONVERT(CHAR(2),@DIA)
    --
    --Inserre na tabela temporária
    INSERT @TMP (DATA) VALUES (@DT_AUX)
    --
    --Incremeta variável do LOOP
    SELECT @AUX = @AUX + 1
    --
    --Se Mês igual a 12 re-inicia Mês e soma 1 no Ano
    IF @MES_INI = 12
    BEGIN
        SELECT @MES_INI = 0
         SELECT @ANO_INI = @ANO_INI + 1
    END 
    --
    --Incrementa no Mês
     SELECT @MES_INI = @MES_INI + 1

END

SELECT * FROM @TMP

Considerações finais:

Este loop pode ser adaptado para gerar intervalo entre números.

Fonte/Autor/link

AUTOR: "Jothaz"

Dúvidas, criticas, contribuições, correções e adições serão bem vindas.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...