GARANTIR DESCONTO

Fórum Agrupar somente por data num campo timestamp #269630

22/02/2005

0

Turma. num comando sql, como mando agrupar por um campo timestamp de forma q ele agrupe somente pela data ignorando a hora??

tentei group by date(dt_hr_tarefa) mas não rola

Q devo fazer?


Zenner

Zenner

Responder

Posts

22/02/2005

Noelrocha

Em MSSQL tem como fazer isso sem problemas ....

um select exemplo seria ...


select convert(varchar(8),DATA,8) as hora
from CLIENTES
group by convert(varchar(8),DATA,8)




qual banco de dados você usa?!


Responder

Gostei + 0

22/02/2005

Noelrocha

Em MSSQL tem como fazer isso sem problemas ....

um select exemplo seria ...


select convert(varchar( 8 ),DATA, 8 ) as hora
from CLIENTES
group by convert(varchar( 8 ) ,DATA, 8 )


Responder

Gostei + 0

22/02/2005

Gandalf.nho

Qual seu banco de dados?


Responder

Gostei + 0

22/02/2005

Zenner

Firebird...

Encontrei o cod q pega somente a data, porém quando agrupo ele ou dá erro ou não faz..


------------------------- Coluna não encontrada ----------------------
SELECT cd_funcionario, cast(dt_hr_tarefa as date) as teste
FROM acoes group by cd_funcionario, teste


------------------------- Token unknown ----------------------
SELECT cd_funcionario, cast(dt_hr_tarefa as date) as teste
FROM acoes group by cd_funcionario, dt_hr_tarefa

------------------------- Erro no cast --------------------------
SELECT cd_funcionario, cast(dt_hr_tarefa as date) as teste
FROM acoes group by cd_funcionario, cast(dt_hr_tarefa as date)


Responder

Gostei + 0

22/02/2005

Gandalf.nho

Qual versão do Firebird você está usando? Acho que isso só funciona na versão 1.5


Responder

Gostei + 0

22/02/2005

Zenner

1.5 mesmo....

Porém acho q consegui.. Resolvi criar uma view contendo todos os dados q preciso, formatando o campo timestamp pra campo data.. Depos dei um select com group by


Responder

Gostei + 0

22/02/2005

Gandalf.nho

Faça um teste assim e veja se funcione:

SELECT cd_funcionario, cast(dt_hr_tarefa as date) as teste 
FROM acoes group by cd_funcionario, 2



Responder

Gostei + 0

22/02/2005

Zenner

rolou não.. mas consegui fazer.. Só falta terminar o sql final....


Como funciona o group com order??

select cd_funcionario, max(dt_tarefa), nm_tarefa from VW_ACOES group by cd_funcionario order by cd_funcionario, dt_tarefa, nm_tarefa

Como agrupo isso por cd_funcionario e dt_tarefa mostrando tb o nome da tarefa??


Responder

Gostei + 0

22/02/2005

Paulo_amorim

Olá

Não sei se ajuda, e não sei se funciona em todos os bancos, mas pode-se fazer um TRUNC na data para eliminar a hora...

Ex. ORACLE:

SELECT TRUNC(sysdate) FROM dual
Retorna 22/02/2005

Espero que ajude
Até+


Responder

Gostei + 0

22/02/2005

Gandalf.nho

Acho que nesse caso não vai dar, pelo menos não diretamente. De acordo com a documentação do FB 1.5 ele não aceita funções agregadas (MIN, MAX, COUNT, SUM...) na cláusula GROUP BY.


Responder

Gostei + 0

22/02/2005

Rômulo Barros

[color=red:a81fb1035c]Veja se [url=http://forum.devmedia.com.br/viewtopic.php?t=50419&highlight=&sid=7ab17ae8ca5a46a66d0359e233a2d75d]ESTE LINK[/url] pode ajudar...[/color:a81fb1035c]


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar