Usuário com melhor resposta
Dúvida query data II

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
Respostas
-
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.comCriptografia, 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
-
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.comCriptografia, 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
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 -
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.comCriptografia, 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
-
-
-
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.comCriptografia, 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
-
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 -
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.comCriptografia, 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