none
Dúvida query data II RRS feed

  • Pergunta

  • Eu tenho um comando que seleciona o movimento do dia de ontem de uma tabela. Isso é feito pelo campo DT_RECIBO e está funcionando ok. Mas não estou conseguindo trazer todo o movimento até o dia de ontem. Estou usando o seguinte comando :
    SELECT *
    FROM NFP01_LISTA A
    WHERE DT_RECIBO  <= DATEADD(D,-1, CAST(CONVERT(CHAR(8),GETDATE(),112) As SMALLDATETIME))
    order by A.DT_RECIBO
    Mas ele não está me trazendo o movimento de ontem dia 11 de janeiro. Ele pára em 10 de janeiro.
    Como posso incluir o dia de ontem na resposta ?

    Eduardo
    • Editado Gustavo Maia Aguiar terça-feira, 12 de janeiro de 2010 11:53 Editada por ter dúvidas não relacionadas no mesmo post
    terça-feira, 12 de janeiro de 2010 11:28

Respostas

Todas as Respostas

  • Bom dia Eduardo,

    Bem, o item 1 foi movido.

    Para o item 2, o problema é que a comparação está sendo realizada com a hora 00:00:00 do dia de ontem, e não 23:59:59, então você pode utilizar o dateadd(ss, -1) para o resultado final.


    Atenciosamente,


    André Rocha.
    http://br.linkedin.com/pub/andre-rocha/10/269/5a http://CleverData.com.br
    terça-feira, 12 de janeiro de 2010 11:53
  • Bom Dia,

    Possivelmente o movimento do dia 11 tem além da data a hora. Como a query limita-se a dia 11 especificamente, os movimentos com horário não são retornados. Tente o seguinte:

    SELECT * 
    FROM NFP01_LISTA A
    WHERE DT_RECIBO  < CAST(CONVERT(CHAR(8),GETDATE(),112) As SMALLDATETIME)
    order by A.DT_RECIBO

    [ ]s,

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

    Criptografia, Autenticadores e Ataques de Inferência no SQL Server
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!908.entry


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar terça-feira, 12 de janeiro de 2010 11:59
    • Marcado como Resposta efcampos quarta-feira, 13 de janeiro de 2010 10:51
    terça-feira, 12 de janeiro de 2010 11:58
  • Gustavo,

    O comando funcionou legal.
    Como eu altero esse comando para obter apenas o movimento do dia de hoje, independentemente do horário ?

    Eduardo
    terça-feira, 12 de janeiro de 2010 15:46
  • SELECT *
    FROM NFP01_LISTA A
    WHERE DT_RECIBO  = CAST(CONVERT(CHAR(8),GETDATE(),112) As SMALLDATETIME)
    order by A.DT_RECIBO

    Tks. Fausto Fiorese Branco MCTS/MCDBA - SQL Server 2k5 São Paulo - Brasil * http://www.linkedin.com/in/faustobranco
    terça-feira, 12 de janeiro de 2010 15:49
  • Boa Tarde,

    Tente dessa forma.

    SELECT * 
    FROM NFP01_LISTA A
    WHERE DT_RECIBO  >= CAST(CONVERT(CHAR(8),GETDATE(),112) As SMALLDATETIME)
    AND
    DT_RECIBO < DATEADD(D,1,CAST(CONVERT(CHAR(8),GETDATE(),112) As SMALLDATETIME))
    order by A.DT_RECIBO

    Ele obtem todo o movimento do dia independente do horário.

    [ ]s,

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

    Criptografia, Autenticadores e Ataques de Inferência no SQL Server
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!908.entry


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar terça-feira, 12 de janeiro de 2010 16:20
    • Marcado como Resposta efcampos quarta-feira, 13 de janeiro de 2010 10:51
    terça-feira, 12 de janeiro de 2010 16:20
  • Gustavo,

    Funcionou legal também.

    Já que você parece conhecer tudo de comando, e essa não é bem minha área.......

    Para eu completar a rotina só falta eu conseguir converter 2 campos no select de baixo :

    Select filial, chave from tabnotas


    O campo filial é numérico(14,0). Eu preciso puxá-lo no select com apenas 4 caracteres numéricos. O resto é tudo zeros ou brancos. Apenas os 4 últimos caracteres me interessam.

    O campo chave é varchar(44), porém ele só tem números. Ao tentar ler o arquivo no excel, essa coluna fica com um valor estranho (3,51E+43) e eu não consigo lê-lo corretamente de jeito nenhum. Eu gostaria de no select já puxá-lo como numérico de 44 posições. Tem como fazer isso ?

    Eduardo
    terça-feira, 12 de janeiro de 2010 19:05
  • Olá Efcampos,

    Eu pediria que você postasse suas dúvidas em threads separadas (e classificasse as respostas dessa se possível).
    É que estamos começando a misturar muitas dúvidas numa thread só e isso acaba deixando-as intermináveis, pois, sempre que uma das dúvida for respondida, alguém voltará na outra dúvida e fica um vai e vem imenso e confuso.

    [ ]s,

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

    Criptografia, Autenticadores e Ataques de Inferência no SQL Server
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!908.entry


    Classifique as respostas. O seu feedback é imprescindível
    terça-feira, 12 de janeiro de 2010 19:09