Consulta t-sql: Últimos 7 dias , 30 dias e 6 meses.

Oi pessoal.

 

Atendendo a pedidos criaremos três consultas no sql server, a primeira filtrar as linhas dos últimos 7 dias, ou seja, filtrar todas as linhas do dia atual até 7 dias atrás, a segunda até os últimos 30 dias, e a terceira até os últimos 6 meses, todas  de forma automática.

  

Para fazer isso usaremos as funções: GETDATE (que mostra a data atual do sistema) , a  DATEADD ( calcula a adição ou subtração de datas) e a CAST para converter a coluna Data_Venda da tabela para o tipo DATE.  E por fim, CONVERT com o código 103 para formatar a Data_Venda para DD/MM/AAAA o padrão brasileiro.

E operador BETWEEN para definir a Data Início ( Hoje) e a Data Fim (-7 dias , -30 dias ou -180 dias).

 Consulta sql últimos 7 dias   Consulta sql últimos 30 dias    DATEADD    GETDATE()  Consulta sql últimos 6 meses

 

 DATA_INICIO:  

 CAST ( GETDATE()  AS DATE )   ou     DATEADD ( d0 , GETDATE() )

 

 DATA_FIM:  

 DATEADD ( d-7 , GETDATE() )

 DATEADD ( d-30 , GETDATE() )

 DATEADD ( d-180 , GETDATE() )

  

 d  adição ou subtração  em dias.

-7  quantidade de dia(s)  a serem calculados.

-30  quantidade de dia(s)  a serem calculados.

-180  quantidade de dia(s)  a serem calculados.

 

Consulta sql últimos 7 dias   

 

 select

cod_venda,

convert( nvarchar (10), Data_Venda ,103) as Data_VendaBR, —Conversão para DD/MM/AAAA

valor

from bd_vendas.dbo.tab_venda

where cast(data_venda as date) between cast( getdate() as date) and  cast( dateadd(d, -7, getdate() ) —Filtra o Período dos últimos 7 dias

 

 

 

 Consulta sql últimos 30 dias   

 

 

select

cod_venda,

convert( nvarchar (10), Data_Venda ,103) as Data_VendaBR, —Conversão para DD/MM/AAAA

valor

from bd_vendas.dbo.tab_venda

where cast(data_venda as date) between cast( getdate() as date) and  cast( dateadd(d, -30, getdate() ) —Filtra o Período dos últimos 30 dias

 

 

Consulta sql últimos 6 meses  

 

 

select

cod_venda,

convert( nvarchar (10), Data_Venda ,103) as Data_VendaBR, —Conversão para DD/MM/AAAA

valor

from bd_vendas.dbo.tab_venda

where cast(data_venda as date) between cast( getdate() as date) and  cast( dateadd(d, -180, getdate() ) —Filtra o Período dos últimos 6 meses, 180 dias

 

  

Espero ter ajudado.

 Abraços.

 Adilson Paranhos

Sobre Adilson Paranhos 5 Artigos
Formado em Analise e Desenvolvimento de Sistemas, experiência há mais de 10 anos. Amo aprender, ensinar, compartilhar e simplificar coisas... Linguagem T-SQL, consultas básicas e avançadas, filtros, agrupamentos, junções, funções, views, funções de sistemas

2 Comentários

  1. Bom dia!
    Por gentileza.
    Executei todos eles alterando para os dados do meu banco e não funciona.

    Retorna com o seguinte erro.
    Mensagem 1035, Nível 15, Estado 10, Linha 23
    Incorrect syntax near ‘cast’, expected ‘AS’.

    Segue meu select onde a data do meu banco está no padrão americano.

    select
    Codigo_Contrato,
    convert( nvarchar (10), Vencimento_Contrato ,103) as Vencimento_Contrato,
    Tbl_Contratos
    where cast(Vencimento_Contrato as date) between cast( getdate() as date) and cast( dateadd(d, -30, getdate()))

    Se puder dizer o que está errado agradeço.
    Muito obrigado.

    • Oi Diego.

      Desculpa a demora, tive um problema com as configurações de aviso por e-mail, já solucionado.
      Obrigado por visitar e contribuir no Blog.
      Perdoe novamente. Irei responder o mais rápido possível.

      Faltou a cláusula FROM.

      Segue o código sql:
      select
      Codigo_Contrato,
      convert( nvarchar (10), Vencimento_Contrato ,103) as Vencimento_Contrato
      FROM Tbl_Contratos
      where cast(Vencimento_Contrato as date) between cast( getdate() as date) and cast( dateadd(d, -30, getdate()))

      Abraços.

      Adilson Paranhos

Faça um comentário

Seu e-mail não será publicado.


*