none
3 últimos meses RRS feed

Respostas

  • Ola Eduardo

    Segue um exemplo com o datepart

    declare @table table (cod int identity(1,1), data datetime)
    insert into @table values('20090101')
    insert into @table values('20090201')
    insert into @table values('20090301')
    insert into @table values('20090401')
    
    select * from @table where month(data) >= DATEPART(month, GETDATE())-3
    
    


    att
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    segunda-feira, 18 de maio de 2009 13:22

Todas as Respostas

  • Ola Eduardo

    Segue um exemplo com o datepart

    declare @table table (cod int identity(1,1), data datetime)
    insert into @table values('20090101')
    insert into @table values('20090201')
    insert into @table values('20090301')
    insert into @table values('20090401')
    
    select * from @table where month(data) >= DATEPART(month, GETDATE())-3
    
    


    att
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    segunda-feira, 18 de maio de 2009 13:22
  • Bom Dia,

    Utilizar funções como MONTH e DATEPART ajudam, pois, são bem claras e intuitivas.
    Em contrapartida são verdadeiras fontes de TABLESCAN, pois, mesmo que você tenha um índice sobre o campo Data, ao usar o MONTH o mesmo será ignorado. Isso pode não fazer diferença no ambiente de desenvolvimento mas já na produção...

    Sugiro a seguinte alternativa:

    declare @table table (cod int identity(1,1), data datetime)
    insert into @table values('20090101')
    insert into @table values('20090201')
    insert into @table values('20090301')
    insert into @table values('20090401')
    
    select * from @table where Data >= DATEADD(M,-3, GETDATE())


    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Como validar e-mails no SQL Server
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!569.entry
    Classifique as respostas. O seu feedback é imprescindível
    segunda-feira, 18 de maio de 2009 14:32