Pesquisar no compo SmallDateTime?

08/01/2007

Olá pessoal estou tendo um problema para pesquisar e agrupar somente a data em um campo SmallDateTime... alguém teria alguma dica?


Respostas

08/01/2007

Emerson

não entendi... especifique melhor.


Responder Citar

08/01/2007

Joule

É assim: eu quero pesquisar uma determinada data no campos SmallDateTime no banco de dados ele salva assim dd/mm/yyyy hh:mm:ss... ai quando eu quero fazer uma pesquisar do dia 01/01/2007 e agrupar por essa data ele me retorna assim:
01/01/2007 11:10:00
01/01/2007 11:23:00
01/01/2007 12:20:00 e assim por diante eu gostaria q ele me retornasse somente a data sem a hora.


Responder Citar

08/01/2007

Emerson

deve ser algo assim:
select
  convert(char(10), campo_data, 103) Dia,
  [lista de campos&93;
from
  tabela
where
  &91;...&93;
group by
  convert(char(10), campo_data, 103) // aqui vc não apelida o campo
order by
  1 // aqui foi usado o número do elemento, que informa que deve ser ordenado pelo campo virtual "Dia"

na função convert você pode usar outro tipo diferente de char(10) , conforme sua necessidade.


Responder Citar

08/01/2007

Joule

Eu já tentei usar o convert só q na hora que eu vou fazer a pesquisar ele pega somente o dia e retorna todos os meses que existe no banco de dados... exemplo:
quero o dia 01/01/2006
ele me retorna:
01/01/2006
01/02/2006
01/03/2006
.
.
. assim por diante


Responder Citar

08/01/2007

Emerson

nos ajude a lhe ajudar:
publique a sua instrução para podermos dar uma solução completa.


Responder Citar

08/01/2007

Joule

select convert(char(10), data, 103) from Pedido
where convert(char(10), data, 103) between ´01/01/2006´ and ´03´/01/2006´
group by data


Responder Citar

08/01/2007

Emerson

preste atenção na instrução que eu te passei. olhe bem o que está na cláusula [i:1f43b505a8]group by[/i:1f43b505a8].


Responder Citar

13/01/2007

Joule

Ok.... estou usando esse aqui:

SELECT CodNotaFiscal, convert(char(10), DataEmissao, 103) as Data
FROM NotaFiscal
where DataEmissao between ´01/11/2006´ and ´05/11/2006´
Group by CodNotaFiscal, convert(char(10), DataEmissao, 103)
Order by 2

Com esse select ele tá me retornando todos os meses com os dias que iniciam de 1 a 5, ele só está selecionando o dia nem o mês nem o ano ele tá retornando o que eu desejo. O q pode estar errado?


Responder Citar

16/01/2007

Macario

Olá,

nesta sua ultima instrução voce nao conseguira agrupar por data, tendo o campo codnotafiscal.

Veja:

CodNota-------Data
[b:bf6d5d69b2]10[/b:bf6d5d69b2]--------------02/01/2007
[b:bf6d5d69b2]11[/b:bf6d5d69b2]--------------02/01/2007
[b:bf6d5d69b2]12[/b:bf6d5d69b2]--------------03/01/2007
[b:bf6d5d69b2]13[/b:bf6d5d69b2]--------------04/01/2007
[b:bf6d5d69b2]14[/b:bf6d5d69b2]--------------04/01/2007

Qual sua real necessidade de informaçao sobre as notas lançadas?


Responder Citar

16/01/2007

Emerson

Ok.... estou usando esse aqui: SELECT CodNotaFiscal, convert(char(10), DataEmissao, 103) as Data FROM NotaFiscal where DataEmissao between ´01/11/2006´ and ´05/11/2006´ Group by CodNotaFiscal, convert(char(10), DataEmissao, 103) Order by 2 Com esse select ele tá me retornando todos os meses com os dias que iniciam de 1 a 5, ele só está selecionando o dia nem o mês nem o ano ele tá retornando o que eu desejo. O q pode estar errado?

a passagem de datas deve ser no formato americano: MM/DD/YYYY, portant,o sua instrução deveria ser:
SELECT
  CodNotaFiscal, convert(char(10), DataEmissao, 103) as Data
FROM
  NotaFiscal
where
  DataEmissao between ´11/01/2006´ and ´11/05/2006´
Group by
  CodNotaFiscal, convert(char(10), DataEmissao, 103)
Order by
  2

p.s: atente-se também à colocação do colega Macario


Responder Citar